0 txs
0 calls
constructor
constructor(address _controller, address _trustedForwarder, uint256 _recoveryPendingPeriod, uint256 _inheritWaitingPeriod, uint256 _whitelistDelayPeriod)
functions
ADD_TO_WHITELIST_IMMEDIATELY_TYPEHASH
viewfunction ADD_TO_WHITELIST_IMMEDIATELY_TYPEHASH() view returns (bytes32)
bindableMethods
purefunction bindableMethods() pure returns (bytes4[] methods)
getLock
viewfunction getLock(address wallet) view returns (uint256 _lock, address _lockedBy)
getWhitelist
viewfunction getWhitelist(address wallet) view returns (address[] addresses, uint256[] effectiveTimes)
GUARDIAN_DOMAIN_SEPERATOR
viewfunction GUARDIAN_DOMAIN_SEPERATOR() view returns (bytes32)
inheritor
viewfunction inheritor(address wallet) view returns (address _inheritor, uint256 lastActive)
inheritWaitingPeriod
viewfunction inheritWaitingPeriod() view returns (uint256)
isLocked
viewfunction isLocked(address wallet) view returns (bool)
isWhitelisted
viewfunction isWhitelisted(address wallet, address addr) view returns (bool isWhitelistedAndEffective, uint256 effectiveTime)
MAX_GUARDIANS
viewfunction MAX_GUARDIANS() view returns (uint256)
MIN_ACTIVE_GUARDIANS
viewfunction MIN_ACTIVE_GUARDIANS() view returns (uint256)
MIN_TOUCH_INTERVAL
viewfunction MIN_TOUCH_INTERVAL() view returns (uint256)
RECOVER_TYPEHASH
viewfunction RECOVER_TYPEHASH() view returns (bytes32)
recoveryPendingPeriod
viewfunction recoveryPendingPeriod() view returns (uint256)
trustedForwarder
viewfunction trustedForwarder() view returns (address)
WHITELIST_DOMAIN_SEPERATOR
viewfunction WHITELIST_DOMAIN_SEPERATOR() view returns (bytes32)
whitelistDelayPeriod
viewfunction whitelistDelayPeriod() view returns (uint256)
activate
nonpayablefunction activate()
addGuardian
nonpayablefunction addGuardian(address wallet, address guardian, uint256 group)
addToWhitelist
nonpayablefunction addToWhitelist(address wallet, address addr)
addToWhitelistImmediately
nonpayablefunction addToWhitelistImmediately(tuple request, address addr)
cancelGuardianAddition
nonpayablefunction cancelGuardianAddition(address wallet, address guardian)
cancelGuardianRemoval
nonpayablefunction cancelGuardianRemoval(address wallet, address guardian)
deactivate
nonpayablefunction deactivate()
inherit
nonpayablefunction inherit(address wallet, address newOwner)
lock
nonpayablefunction lock(address wallet)
recover
nonpayablefunction recover(tuple request, address newOwner)
removeFromWhitelist
nonpayablefunction removeFromWhitelist(address wallet, address addr)
removeGuardian
nonpayablefunction removeGuardian(address wallet, address guardian)
setInheritor
nonpayablefunction setInheritor(address wallet, address _inheritor)
unlock
nonpayablefunction unlock(address wallet)
events
Activated
event Activated(address wallet)
Deactivated
event Deactivated(address wallet)
GuardianAdded
event GuardianAdded(address indexed wallet, address guardian, uint256 group, uint256 effectiveTime)
GuardianAdditionCancelled
event GuardianAdditionCancelled(address indexed wallet, address guardian)
GuardianRemovalCancelled
event GuardianRemovalCancelled(address indexed wallet, address guardian)
GuardianRemoved
event GuardianRemoved(address indexed wallet, address guardian, uint256 removalEffectiveTime)
Inherited
event Inherited(address indexed wallet, address inheritor, address newOwner)
InheritorChanged
event InheritorChanged(address indexed wallet, address inheritor)
Recovered
event Recovered(address indexed wallet, address newOwner)
WalletLock
event WalletLock(address indexed wallet, uint256 lock)
errors
No errors.
creation bytecode
0x60806040523480156200001157600080fd5b5060405162004f2638038062004f2683398101604081905262000034916200025c565b600080546001600160a01b0319166001600160a01b0386161790556040805160a081018252600e606082019081526d477561726469616e4d6f64756c6560901b608083015281528151808301835260058152640312e312e360dc1b602080830191909152808301919091523092820192909252829184918691620000c29190620001e3811b6200371b17901c565b60025580620000ee5760405162461bcd60e51b8152600401620000e590620002df565b60405180910390fd5b60035580620001115760405162461bcd60e51b8152600401620000e590620002df565b60045580620001345760405162461bcd60e51b8152600401620000e590620002df565b620001b160405180606001604052806040518060400160405280600f81526020016e57686974656c6973744d6f64756c6560881b8152508152602001604051806040016040528060058152602001640312e312e360dc1b8152508152602001306001600160a01b0316815250620001e360201b6200371b1760201c565b6005556006555050600780546001600160a01b0319166001600160a01b039490941693909317909255506200031f9050565b6000804690507f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8360000151805190602001208460200151805190602001208386604001516040516020016200023e959493929190620002b3565b60405160208183030381529060405280519060200120915050919050565b600080600080600060a0868803121562000274578081fd5b8551620002818162000306565b6020870151909550620002948162000306565b6040870151606088015160809098015196999198509695945092505050565b9485526020850193909352604084019190915260608301526001600160a01b0316608082015260a00190565b6020808252600d908201526c494e56414c49445f44454c415960981b604082015260600190565b6001600160a01b03811681146200031c57600080fd5b50565b614bf7806200032f6000396000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c806351b42b001161010f5780639b27a90e116100a2578063b6b3527211610071578063b6b35272146103c5578063eedb49ec146103e6578063f435f5a7146103ee578063f8d3277d14610401576101e5565b80639b27a90e14610382578063a6eb069014610395578063afa3363d146103a8578063b4c8f815146103bd576101e5565b806386eb53e0116100de57806386eb53e01461033e5780638cff544c146103465780639a32bbb9146103675780639a53228a1461037a576101e5565b806351b42b00146102ed57806357518243146102f55780636b9db4e6146103085780637da0a87714610329576101e5565b806328ba79ab11610187578063328c0bc211610156578063328c0bc2146102aa5780633fa5e0cb146102bd578063422c1d37146102c55780634a4fbeec146102cd576101e5565b806328ba79ab146102505780632e41763c146102635780632f6c493c1461027657806330edc0f514610289576101e5565b80630f15f4c0116101c35780630f15f4c01461022557806313d53dcf1461022d5780631ec2bad01461023557806321e02dec1461023d576101e5565b806301ed8ef7146101ea57806307364c18146102085780630e6053d01461021d575b600080fd5b6101f2610414565b6040516101ff919061466a565b60405180910390f35b61021b61021636600461415e565b61041a565b005b6101f26107ce565b61021b6107f2565b6101f2610841565b6101f2610846565b61021b61024b36600461415e565b61086a565b61021b61025e366004614306565b610e4e565b61021b61027136600461415e565b6113d8565b61021b610284366004614126565b611861565b61029c610297366004614126565b6119d7565b6040516101ff929190614573565b61021b6102b8366004614196565b611ada565b6101f26120d5565b6101f26120db565b6102e06102db366004614126565b6120e0565b6040516101ff919061464f565b61021b6120f3565b61021b61030336600461415e565b612137565b61031b610316366004614126565b6124b7565b6040516101ff929190614aee565b6103316124c3565b6040516101ff91906144be565b6101f26124d2565b610359610354366004614126565b6124d8565b6040516101ff929190614539565b61021b610375366004614306565b6125cd565b6101f26127fe565b61021b61039036600461415e565b612805565b61021b6103a336600461415e565b612cbb565b6103b0613052565b6040516101ff9190614601565b6101f2613057565b6103d86103d336600461415e565b61305d565b6040516101ff92919061465a565b6101f2613160565b61021b6103fc366004614126565b613166565b61021b61040f36600461415e565b6133ef565b60055481565b600154156104435760405162461bcd60e51b815260040161043a906148a2565b60405180910390fd5b6001805561044f613792565b1561046c5760405162461bcd60e51b815260040161043a906147ab565b81600061047761380d565b9050816001600160a01b0316816001600160a01b0316148061052b5750816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156104cd57600080fd5b505afa1580156104e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105059190614142565b6001600160a01b0316816001600160a01b031614801561052b57506105298261381c565b155b6105475760405162461bcd60e51b815260040161043a90614937565b600061055161391b565b6001600160a01b031663d51b3a1b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561058957600080fd5b505afa15801561059d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c19190614142565b905062093a80816001600160a01b031663c2ec28d6856040518263ffffffff1660e01b81526004016105f391906144be565b60206040518083038186803b15801561060b57600080fd5b505afa15801561061f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610643919061433f565b014211156106aa5760405163d36e351760e01b81526001600160a01b0382169063d36e3517906106779086906004016144be565b600060405180830381600087803b15801561069157600080fd5b505af11580156106a5573d6000803e3d6000fd5b505050505b6106b261391b565b6001600160a01b031663d51b3a1b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156106ea57600080fd5b505afa1580156106fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107229190614142565b6001600160a01b03166307364c1886866040518363ffffffff1660e01b815260040161074f9291906144d2565b600060405180830381600087803b15801561076957600080fd5b505af115801561077d573d6000803e3d6000fd5b50505050846001600160a01b03167fa6c573e1154a7ad35f68b855687705be4e0933d1ab6ee4fd8308a1d0a4a52d48856040516107ba91906144be565b60405180910390a250506000600155505050565b7fb0b028d5f0ca4e0ae32288effd3473a6e4e512a553f6b929fa82321ef2a641e381565b60006107fc61380d565b90506108078161392a565b7f0cc43938d137e7efade6a531f663e78c1fc75257b0d65ffda2fdaf70cb49cdf98160405161083691906144be565b60405180910390a150565b600281565b7f04cbded2c195932058c24a5373dfbee6688eb058186f4edbd50275a6143b723081565b6001541561088a5760405162461bcd60e51b815260040161043a906148a2565b60018055610896613792565b156108b35760405162461bcd60e51b815260040161043a906147ab565b8160006108be61380d565b9050816001600160a01b0316816001600160a01b031614806109725750816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561091457600080fd5b505afa158015610928573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094c9190614142565b6001600160a01b0316816001600160a01b031614801561097257506109708261381c565b155b61098e5760405162461bcd60e51b815260040161043a90614937565b600061099861391b565b6001600160a01b031663d51b3a1b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156109d057600080fd5b505afa1580156109e4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a089190614142565b905062093a80816001600160a01b031663c2ec28d6856040518263ffffffff1660e01b8152600401610a3a91906144be565b60206040518083038186803b158015610a5257600080fd5b505afa158015610a66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8a919061433f565b01421115610af15760405163d36e351760e01b81526001600160a01b0382169063d36e351790610abe9086906004016144be565b600060405180830381600087803b158015610ad857600080fd5b505af1158015610aec573d6000803e3d6000fd5b505050505b610af961391b565b6001600160a01b031663ab7aa6ad6040518163ffffffff1660e01b815260040160206040518083038186803b158015610b3157600080fd5b505afa158015610b45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b699190614142565b6001600160a01b0316637f247e49856040518263ffffffff1660e01b8152600401610b9491906144be565b60206040518083038186803b158015610bac57600080fd5b505afa158015610bc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be491906142c5565b610c005760405162461bcd60e51b815260040161043a90614803565b6000610c0a61391b565b6001600160a01b031663d51b3a1b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610c4257600080fd5b505afa158015610c56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7a9190614142565b6001600160a01b0316638cff544c876040518263ffffffff1660e01b8152600401610ca591906144be565b604080518083038186803b158015610cbc57600080fd5b505afa158015610cd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf491906141d6565b509050846001600160a01b0316816001600160a01b03161415610d295760405162461bcd60e51b815260040161043a90614853565b610d3161391b565b6001600160a01b031663d51b3a1b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610d6957600080fd5b505afa158015610d7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da19190614142565b6001600160a01b03166321e02dec87876040518363ffffffff1660e01b8152600401610dce9291906144d2565b600060405180830381600087803b158015610de857600080fd5b505af1158015610dfc573d6000803e3d6000fd5b50505050856001600160a01b03167f97d68ade79da92fad172b5d11818d601c0bd0ffbbda066a0105294a8e1083a3d86604051610e3991906144be565b60405180910390a25050600060015550505050565b60015415610e6e5760405162461bcd60e51b815260040161043a906148a2565b60018055610e826080830160608401614126565b81806001600160a01b0316826001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610ec657600080fd5b505afa158015610eda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610efe9190614142565b6001600160a01b03161415610f255760405162461bcd60e51b815260040161043a90614a24565b826001600160a01b03811615801590610f4d5750610f4b816001600160a01b03166139c8565b155b610f695760405162461bcd60e51b815260040161043a90614980565b610f796080860160608701614126565b6002610f8361391b565b6001600160a01b031663d51b3a1b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610fbb57600080fd5b505afa158015610fcf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff39190614142565b6001600160a01b031663dc75049d836040518263ffffffff1660e01b815260040161101e91906144be565b60206040518083038186803b15801561103657600080fd5b505afa15801561104a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106e919061433f565b101561108c5760405162461bcd60e51b815260040161043a90614ab7565b61109461391b565b6001600160a01b031673c35676bf5cbc9373e4a04afc910de34a55a5069a63999343c790916002546110c4613792565b60008b7f04cbded2c195932058c24a5373dfbee6688eb058186f4edbd50275a6143b72306110f86080830160608401614126565b8e604001358e6040516020016111119493929190614673565b6040516020818303038152906040526040518763ffffffff1660e01b8152600401611141969594939291906146e9565b60006040518083038186803b15801561115957600080fd5b505af415801561116d573d6000803e3d6000fd5b50505050600061117b61391b565b6001600160a01b031663d51b3a1b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156111b357600080fd5b505afa1580156111c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111eb9190614142565b90506001600160a01b03811663379d86b461120c60808a0160608b01614126565b886040518363ffffffff1660e01b815260040161122a9291906144d2565b60206040518083038186803b15801561124257600080fd5b505afa158015611256573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061127a91906142c5565b156112f1576001600160a01b0381166365d279ee61129e60808a0160608b01614126565b88426040518463ffffffff1660e01b81526004016112be939291906144ec565b600060405180830381600087803b1580156112d857600080fd5b505af11580156112ec573d6000803e3d6000fd5b505050505b6113016080880160608901614126565b6001600160a01b03166313af4035876040518263ffffffff1660e01b815260040161132c91906144be565b600060405180830381600087803b15801561134657600080fd5b505af115801561135a573d6000803e3d6000fd5b5061137a92506113739150506080890160608a01614126565b6001613a02565b61138a6080880160608901614126565b6001600160a01b03167fc4aef5da6b1f6085ebd05a82a61d94bf83a486f32ab4ac3f7843afeed66b1440876040516113c291906144be565b60405180910390a2505060006001555050505050565b600154156113f85760405162461bcd60e51b815260040161043a906148a2565b60018055611404613792565b156114215760405162461bcd60e51b815260040161043a906147ab565b806001600160a01b038116158015906114495750611447816001600160a01b03166139c8565b155b6114655760405162461bcd60e51b815260040161043a90614980565b8282806001600160a01b0316826001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156114aa57600080fd5b505afa1580156114be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e29190614142565b6001600160a01b031614156115095760405162461bcd60e51b815260040161043a90614a24565b60008061151461391b565b6001600160a01b031663d51b3a1b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561154c57600080fd5b505afa158015611560573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115849190614142565b6001600160a01b0316638cff544c886040518263ffffffff1660e01b81526004016115af91906144be565b604080518083038186803b1580156115c657600080fd5b505afa1580156115da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115fe91906141d6565b91509150816001600160a01b031661161461380d565b6001600160a01b03161461163a5760405162461bcd60e51b815260040161043a906148ec565b60008111801561164e575060045481014210155b61166a5760405162461bcd60e51b815260040161043a90614a4d565b600061167461391b565b6001600160a01b031663d51b3a1b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156116ac57600080fd5b505afa1580156116c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e49190614142565b604051632b9659f560e21b81529091506001600160a01b0382169063ae5967d490611713908b906004016144be565b600060405180830381600087803b15801561172d57600080fd5b505af1158015611741573d6000803e3d6000fd5b50506040516308780b7b60e21b81526001600160a01b03841692506321e02dec9150611774908b906000906004016144d2565b600060405180830381600087803b15801561178e57600080fd5b505af11580156117a2573d6000803e3d6000fd5b50506040516313af403560e01b81526001600160a01b038b1692506313af403591506117d2908a906004016144be565b600060405180830381600087803b1580156117ec57600080fd5b505af1158015611800573d6000803e3d6000fd5b5050505061180f886001613a02565b876001600160a01b03167f85c6e43dbd10c1b6d77c7c1da9a4645a2a4555d95a5f5e701ac347317cd08542848960405161184a9291906144d2565b60405180910390a250506000600155505050505050565b600154156118815760405162461bcd60e51b815260040161043a906148a2565b6001805561188d613792565b156118aa5760405162461bcd60e51b815260040161043a906147ab565b806118b361391b565b6001600160a01b031663d51b3a1b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156118eb57600080fd5b505afa1580156118ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119239190614142565b6001600160a01b031663d4ee97348261193a61380d565b6040518363ffffffff1660e01b81526004016119579291906144d2565b60206040518083038186803b15801561196f57600080fd5b505afa158015611983573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119a791906142c5565b6119c35760405162461bcd60e51b815260040161043a906149a7565b6119ce826000613a02565b50506000600155565b6060806119e261391b565b6001600160a01b03166337423d5e6040518163ffffffff1660e01b815260040160206040518083038186803b158015611a1a57600080fd5b505afa158015611a2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a529190614142565b6001600160a01b0316639b19251a846040518263ffffffff1660e01b8152600401611a7d91906144be565b60006040518083038186803b158015611a9557600080fd5b505afa158015611aa9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ad19190810190614203565b91509150915091565b60015415611afa5760405162461bcd60e51b815260040161043a906148a2565b60018055611b06613792565b15611b235760405162461bcd60e51b815260040161043a906147ab565b826000611b2e61380d565b9050816001600160a01b0316816001600160a01b03161480611be25750816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611b8457600080fd5b505afa158015611b98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bbc9190614142565b6001600160a01b0316816001600160a01b0316148015611be25750611be08261381c565b155b611bfe5760405162461bcd60e51b815260040161043a90614937565b6000611c0861391b565b6001600160a01b031663d51b3a1b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611c4057600080fd5b505afa158015611c54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c789190614142565b905062093a80816001600160a01b031663c2ec28d6856040518263ffffffff1660e01b8152600401611caa91906144be565b60206040518083038186803b158015611cc257600080fd5b505afa158015611cd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cfa919061433f565b01421115611d615760405163d36e351760e01b81526001600160a01b0382169063d36e351790611d2e9086906004016144be565b600060405180830381600087803b158015611d4857600080fd5b505af1158015611d5c573d6000803e3d6000fd5b505050505b8585806001600160a01b0316826001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611da657600080fd5b505afa158015611dba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dde9190614142565b6001600160a01b03161415611e055760405162461bcd60e51b815260040161043a90614a24565b876001600160a01b0316876001600160a01b03161415611e375760405162461bcd60e51b815260040161043a906147da565b6001600160a01b038716611e5d5760405162461bcd60e51b815260040161043a90614911565b60108610611e7d5760405162461bcd60e51b815260040161043a9061487b565b6000611e8761391b565b6001600160a01b031663d51b3a1b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611ebf57600080fd5b505afa158015611ed3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ef79190614142565b6001600160a01b03166379e0adfd8a6040518263ffffffff1660e01b8152600401611f2291906144be565b60206040518083038186803b158015611f3a57600080fd5b505afa158015611f4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f72919061433f565b905060148110611f945760405162461bcd60e51b815260040161043a906149f8565b4260028210611fa4575060035442015b611fac61391b565b6001600160a01b031663d51b3a1b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611fe457600080fd5b505afa158015611ff8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061201c9190614142565b6001600160a01b031663c0d9f7558b8b8b856040518563ffffffff1660e01b815260040161204d9493929190614510565b600060405180830381600087803b15801561206757600080fd5b505af115801561207b573d6000803e3d6000fd5b50505050896001600160a01b03167f90476f7f2bcb3682723cc19263e554ff706aa9a33b63d08e57dfee9f92bd217c8a8a846040516120bc93929190614552565b60405180910390a2505060006001555050505050505050565b60025481565b601481565b60006120eb8261381c565b90505b919050565b60006120fd61380d565b905061210881613c54565b7f749cb6b4c510bc468cf6b9c2086d6f0a54d6b18e25d37bf3200e68eab0880c008160405161083691906144be565b600154156121575760405162461bcd60e51b815260040161043a906148a2565b60018055612163613792565b156121805760405162461bcd60e51b815260040161043a906147ab565b81600061218b61380d565b9050816001600160a01b0316816001600160a01b0316148061223f5750816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156121e157600080fd5b505afa1580156121f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122199190614142565b6001600160a01b0316816001600160a01b031614801561223f575061223d8261381c565b155b61225b5760405162461bcd60e51b815260040161043a90614937565b600061226561391b565b6001600160a01b031663d51b3a1b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561229d57600080fd5b505afa1580156122b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122d59190614142565b905062093a80816001600160a01b031663c2ec28d6856040518263ffffffff1660e01b815260040161230791906144be565b60206040518083038186803b15801561231f57600080fd5b505afa158015612333573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612357919061433f565b014211156123be5760405163d36e351760e01b81526001600160a01b0382169063d36e35179061238b9086906004016144be565b600060405180830381600087803b1580156123a557600080fd5b505af11580156123b9573d6000803e3d6000fd5b505050505b6123c661391b565b6001600160a01b03166337423d5e6040518163ffffffff1660e01b815260040160206040518083038186803b1580156123fe57600080fd5b505afa158015612412573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124369190614142565b6001600160a01b031663e09e83e3868661245b60065442613ced90919063ffffffff16565b6040518463ffffffff1660e01b8152600401612479939291906144ec565b600060405180830381600087803b15801561249357600080fd5b505af11580156124a7573d6000803e3d6000fd5b5050600060015550505050505050565b600080611ad183613d16565b6000546001600160a01b031681565b60045481565b6000806124e361391b565b6001600160a01b031663d51b3a1b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561251b57600080fd5b505afa15801561252f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125539190614142565b6001600160a01b0316638cff544c846040518263ffffffff1660e01b815260040161257e91906144be565b604080518083038186803b15801561259557600080fd5b505afa1580156125a9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad191906141d6565b600154156125ed5760405162461bcd60e51b815260040161043a906148a2565b600180556126016080830160608401614126565b61260a8161381c565b156126275760405162461bcd60e51b815260040161043a90614a97565b61262f61391b565b6001600160a01b031673c35676bf5cbc9373e4a04afc910de34a55a5069a63999343c7909160055461265f613792565b6002887fb0b028d5f0ca4e0ae32288effd3473a6e4e512a553f6b929fa82321ef2a641e36126936080830160608401614126565b8b604001358b6040516020016126ac9493929190614673565b6040516020818303038152906040526040518763ffffffff1660e01b81526004016126dc969594939291906146e9565b60006040518083038186803b1580156126f457600080fd5b505af4158015612708573d6000803e3d6000fd5b5050505061271461391b565b6001600160a01b03166337423d5e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561274c57600080fd5b505afa158015612760573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127849190614142565b6001600160a01b031663e09e83e36127a26080860160608701614126565b84426040518463ffffffff1660e01b81526004016127c2939291906144ec565b600060405180830381600087803b1580156127dc57600080fd5b505af11580156127f0573d6000803e3d6000fd5b505060006001555050505050565b62093a8081565b600154156128255760405162461bcd60e51b815260040161043a906148a2565b60018055612831613792565b1561284e5760405162461bcd60e51b815260040161043a906147ab565b81600061285961380d565b9050816001600160a01b0316816001600160a01b0316148061290d5750816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156128af57600080fd5b505afa1580156128c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128e79190614142565b6001600160a01b0316816001600160a01b031614801561290d575061290b8261381c565b155b6129295760405162461bcd60e51b815260040161043a90614937565b600061293361391b565b6001600160a01b031663d51b3a1b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561296b57600080fd5b505afa15801561297f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129a39190614142565b905062093a80816001600160a01b031663c2ec28d6856040518263ffffffff1660e01b81526004016129d591906144be565b60206040518083038186803b1580156129ed57600080fd5b505afa158015612a01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a25919061433f565b01421115612a8c5760405163d36e351760e01b81526001600160a01b0382169063d36e351790612a599086906004016144be565b600060405180830381600087803b158015612a7357600080fd5b505af1158015612a87573d6000803e3d6000fd5b505050505b8484612a9661391b565b6001600160a01b031663d51b3a1b6040518163ffffffff1660e01b815260040160206040518083038186803b158015612ace57600080fd5b505afa158015612ae2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b069190614142565b6001600160a01b031663d4ee973483836040518363ffffffff1660e01b8152600401612b339291906144d2565b60206040518083038186803b158015612b4b57600080fd5b505afa158015612b5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b8391906142c5565b612b9f5760405162461bcd60e51b815260040161043a906148c6565b612ba761391b565b6001600160a01b031663d51b3a1b6040518163ffffffff1660e01b815260040160206040518083038186803b158015612bdf57600080fd5b505afa158015612bf3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c179190614142565b6001600160a01b03166365d279ee888860035442016040518463ffffffff1660e01b8152600401612c4a939291906144ec565b600060405180830381600087803b158015612c6457600080fd5b505af1158015612c78573d6000803e3d6000fd5b50505050866001600160a01b03167f3b474d5aea4286914f107a200bc4aefdff380346cf5f4b744aa13f5e7de416ac8760035442016040516113c2929190614539565b60015415612cdb5760405162461bcd60e51b815260040161043a906148a2565b60018055612ce7613792565b15612d045760405162461bcd60e51b815260040161043a906147ab565b816000612d0f61380d565b9050816001600160a01b0316816001600160a01b03161480612dc35750816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015612d6557600080fd5b505afa158015612d79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d9d9190614142565b6001600160a01b0316816001600160a01b0316148015612dc35750612dc18261381c565b155b612ddf5760405162461bcd60e51b815260040161043a90614937565b6000612de961391b565b6001600160a01b031663d51b3a1b6040518163ffffffff1660e01b815260040160206040518083038186803b158015612e2157600080fd5b505afa158015612e35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e599190614142565b905062093a80816001600160a01b031663c2ec28d6856040518263ffffffff1660e01b8152600401612e8b91906144be565b60206040518083038186803b158015612ea357600080fd5b505afa158015612eb7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612edb919061433f565b01421115612f425760405163d36e351760e01b81526001600160a01b0382169063d36e351790612f0f9086906004016144be565b600060405180830381600087803b158015612f2957600080fd5b505af1158015612f3d573d6000803e3d6000fd5b505050505b612f4a61391b565b6001600160a01b031663d51b3a1b6040518163ffffffff1660e01b815260040160206040518083038186803b158015612f8257600080fd5b505afa158015612f96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fba9190614142565b6001600160a01b031663a6eb069086866040518363ffffffff1660e01b8152600401612fe79291906144d2565b600060405180830381600087803b15801561300157600080fd5b505af1158015613015573d6000803e3d6000fd5b50505050846001600160a01b03167faa13b27c23e9e3f3d5f3861a53b7a2931e019170a6a19ed64942e26a1dd5987a856040516107ba91906144be565b606090565b60035481565b60008061306861391b565b6001600160a01b03166337423d5e6040518163ffffffff1660e01b815260040160206040518083038186803b1580156130a057600080fd5b505afa1580156130b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130d89190614142565b6001600160a01b031663b6b3527285856040518363ffffffff1660e01b81526004016131059291906144d2565b604080518083038186803b15801561311c57600080fd5b505afa158015613130573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061315491906142e5565b915091505b9250929050565b60065481565b600154156131865760405162461bcd60e51b815260040161043a906148a2565b60018055613192613792565b156131af5760405162461bcd60e51b815260040161043a906147ab565b806131b861391b565b6001600160a01b031663d51b3a1b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156131f057600080fd5b505afa158015613204573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132289190614142565b6001600160a01b031663d4ee97348261323f61380d565b6040518363ffffffff1660e01b815260040161325c9291906144d2565b60206040518083038186803b15801561327457600080fd5b505afa158015613288573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132ac91906142c5565b6132c85760405162461bcd60e51b815260040161043a906149a7565b8160026132d361391b565b6001600160a01b031663d51b3a1b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561330b57600080fd5b505afa15801561331f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133439190614142565b6001600160a01b031663dc75049d836040518263ffffffff1660e01b815260040161336e91906144be565b60206040518083038186803b15801561338657600080fd5b505afa15801561339a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133be919061433f565b10156133dc5760405162461bcd60e51b815260040161043a90614ab7565b6133e583613e0b565b5050600060015550565b6001541561340f5760405162461bcd60e51b815260040161043a906148a2565b6001805561341b613792565b156134385760405162461bcd60e51b815260040161043a906147ab565b81600061344361380d565b9050816001600160a01b0316816001600160a01b031614806134f75750816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561349957600080fd5b505afa1580156134ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134d19190614142565b6001600160a01b0316816001600160a01b03161480156134f757506134f58261381c565b155b6135135760405162461bcd60e51b815260040161043a90614937565b600061351d61391b565b6001600160a01b031663d51b3a1b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561355557600080fd5b505afa158015613569573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061358d9190614142565b905062093a80816001600160a01b031663c2ec28d6856040518263ffffffff1660e01b81526004016135bf91906144be565b60206040518083038186803b1580156135d757600080fd5b505afa1580156135eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061360f919061433f565b014211156136765760405163d36e351760e01b81526001600160a01b0382169063d36e3517906136439086906004016144be565b600060405180830381600087803b15801561365d57600080fd5b505af1158015613671573d6000803e3d6000fd5b505050505b61367e61391b565b6001600160a01b03166337423d5e6040518163ffffffff1660e01b815260040160206040518083038186803b1580156136b657600080fd5b505afa1580156136ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136ee9190614142565b6001600160a01b031663f8d3277d86866040518363ffffffff1660e01b81526004016124799291906144d2565b6000804690507f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f83600001518051906020012084602001518051906020012083866040015160405160200161377495949392919061469a565b60405160208183030381529060405280519060200120915050919050565b6000603836108015906137af57506000546001600160a01b031633145b15613806576137ff60206000369050036000368080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613e8f9050565b905061380a565b5060005b90565b6000613817613eab565b905090565b60008061382761391b565b6001600160a01b031663d51b3a1b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561385f57600080fd5b505afa158015613873573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138979190614142565b6001600160a01b0316636b9db4e6846040518263ffffffff1660e01b81526004016138c291906144be565b604080518083038186803b1580156138d957600080fd5b505afa1580156138ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139119190614357565b5042109392505050565b6007546001600160a01b031690565b806060613935613052565b905060005b81518110156139c257826001600160a01b031663b149206e83838151811061395e57fe5b6020026020010151306040518363ffffffff1660e01b81526004016139849291906146c6565b600060405180830381600087803b15801561399e57600080fd5b505af11580156139b2573d6000803e3d6000fd5b50506001909201915061393a9050565b50505050565b6000813f80158015906139fb57507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114155b9392505050565b600080613a0d61391b565b6001600160a01b031663d51b3a1b6040518163ffffffff1660e01b815260040160206040518083038186803b158015613a4557600080fd5b505afa158015613a59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a7d9190614142565b6001600160a01b0316636b9db4e6856040518263ffffffff1660e01b8152600401613aa891906144be565b604080518083038186803b158015613abf57600080fd5b505afa158015613ad3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613af79190614357565b9150915042821115613c0c578280613b1757506001600160a01b03811630145b613b335760405162461bcd60e51b815260040161043a90614829565b613b3b61391b565b6001600160a01b031663d51b3a1b6040518163ffffffff1660e01b815260040160206040518083038186803b158015613b7357600080fd5b505afa158015613b87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bab9190614142565b6001600160a01b031663b0fc29e68560006040518363ffffffff1660e01b8152600401613bd9929190614539565b600060405180830381600087803b158015613bf357600080fd5b505af1158015613c07573d6000803e3d6000fd5b505050505b836001600160a01b03167f8f830d5754bc62bcea9615494ff998b81aaa2308c9e26dd55750e0e6028b48266000604051613c46919061466a565b60405180910390a250505050565b806060613c5f613052565b905060005b81518110156139c257826001600160a01b031663b149206e838381518110613c8857fe5b602002602001015160006040518363ffffffff1660e01b8152600401613caf9291906146c6565b600060405180830381600087803b158015613cc957600080fd5b505af1158015613cdd573d6000803e3d6000fd5b505060019092019150613c649050565b81810182811015613d105760405162461bcd60e51b815260040161043a906149d2565b92915050565b600080613d2161391b565b6001600160a01b031663d51b3a1b6040518163ffffffff1660e01b815260040160206040518083038186803b158015613d5957600080fd5b505afa158015613d6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d919190614142565b6001600160a01b0316636b9db4e6846040518263ffffffff1660e01b8152600401613dbc91906144be565b604080518083038186803b158015613dd357600080fd5b505afa158015613de7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad19190614357565b613e8c81613e1761391b565b6001600160a01b03166326c8fded6040518163ffffffff1660e01b815260040160206040518083038186803b158015613e4f57600080fd5b505afa158015613e63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e87919061433f565b613f30565b50565b60008160200183511015613ea257600080fd5b50016020015190565b600060383610801590613ec857506000546001600160a01b031633145b15613f29576137ff613f1b60346000369050036000368080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505061408a9050565b6001600160a01b031661380a565b503361380a565b81613f3a8161381c565b15613f575760405162461bcd60e51b815260040161043a90614a97565b60008211613f775760405162461bcd60e51b815260040161043a90614a73565b428201613f8261391b565b6001600160a01b031663d51b3a1b6040518163ffffffff1660e01b815260040160206040518083038186803b158015613fba57600080fd5b505afa158015613fce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ff29190614142565b6001600160a01b031663b0fc29e685836040518363ffffffff1660e01b815260040161401f929190614539565b600060405180830381600087803b15801561403957600080fd5b505af115801561404d573d6000803e3d6000fd5b50505050836001600160a01b03167f8f830d5754bc62bcea9615494ff998b81aaa2308c9e26dd55750e0e6028b482682604051613c46919061466a565b6000816014018351101561409d57600080fd5b500160200151600160601b900490565b8051613d1081614bac565b600082601f8301126140c8578081fd5b81516140db6140d682614b2c565b614b05565b8181529150602080830190848101818402860182018710156140fc57600080fd5b60005b8481101561411b578151845292820192908201906001016140ff565b505050505092915050565b600060208284031215614137578081fd5b81356139fb81614bac565b600060208284031215614153578081fd5b81516139fb81614bac565b60008060408385031215614170578081fd5b823561417b81614bac565b9150602083013561418b81614bac565b809150509250929050565b6000806000606084860312156141aa578081fd5b83356141b581614bac565b925060208401356141c581614bac565b929592945050506040919091013590565b600080604083850312156141e8578182fd5b82516141f381614bac565b6020939093015192949293505050565b60008060408385031215614215578182fd5b825167ffffffffffffffff8082111561422c578384fd5b818501915085601f83011261423f578384fd5b815161424d6140d682614b2c565b80828252602080830192508086018a82838702890101111561426d578889fd5b8896505b84871015614297576142838b826140ad565b845260019690960195928101928101614271565b5088015190965093505050808211156142ae578283fd5b506142bb858286016140b8565b9150509250929050565b6000602082840312156142d6578081fd5b815180151581146139fb578182fd5b600080604083850312156142f7578182fd5b825180151581146141f3578283fd5b60008060408385031215614318578182fd5b823567ffffffffffffffff81111561432e578283fd5b83016080818603121561417b578283fd5b600060208284031215614350578081fd5b5051919050565b60008060408385031215614369578182fd5b82519150602083015161418b81614bac565b815260200190565b6001600160a01b03169052565b60008284526020808501945082825b858110156143cd5781356143b281614bac565b6001600160a01b03168752958201959082019060010161439f565b509495945050505050565b818352602080840193600091908185020181018584845b878110156144665782840389528135601e1988360301811261440f578687fd5b8701803567ffffffffffffffff811115614427578788fd5b803603891315614435578788fd5b8086528087830188880137858101870188905299860199601f01601f191690940185019350908401906001016143ef565b5091979650505050505050565b60008151808452815b818110156144985760208185018101518683018201520161447c565b818111156144a95782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b0394851681529290931660208301526040820152606081019190915260800190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039390931683526020830191909152604082015260600190565b604080825283519082018190526000906020906060840190828701845b828110156145b3576145a3848351614383565b9284019290840190600101614590565b505050838103828501528085516145ca818461466a565b91508387019250845b818110156145f4576145e683855161437b565b9385019392506001016145d3565b5090979650505050505050565b6020808252825182820181905260009190848201906040850190845b818110156146435783516001600160e01b0319168352928401929184019160010161461d565b50909695505050505050565b901515815260200190565b9115158252602082015260400190565b90815260200190565b9384526001600160a01b039283166020850152604084019190915216606082015260800190565b9485526020850193909352604084019190915260608301526001600160a01b0316608082015260a00190565b6001600160e01b03199290921682526001600160a01b0316602082015260400190565b6001600160a01b03871681526020810186905260408101859052600061470e85614ba1565b606083015260c060808301526147248485614b59565b608060c085015261473a61014085018284614390565b91505061474a6020860186614b59565b84830360bf190160e08601526147618382846143d8565b92505050604085013561010084015261477d6060860186614b4c565b61478b610120850182614383565b5082810360a084015261479e8185614473565b9998505050505050505050565b6020808252601590820152740929cac82989288bea8b0be82ae82a48abe9082a69605b1b604082015260600190565b6020808252600f908201526e494e56414c49445f4144445245535360881b604082015260600190565b6020808252600c908201526b1393d517d057d5d05313115560a21b604082015260600190565b60208082526010908201526f554e41424c455f544f5f554e4c4f434b60801b604082015260600190565b6020808252600e908201526d29a0a6a2afa4a72422a924aa27a960911b604082015260600190565b6020808252600d908201526c0494e56414c49445f47524f555609c1b604082015260600190565b6020808252600a90820152695245454e5452414e435960b01b604082015260600190565b6020808252600c908201526b2727aa2fa3aaa0a92224a0a760a11b604082015260600190565b6020808252600b908201526a1393d517d0531313d5d15160aa1b604082015260600190565b6020808252600c908201526b5a45524f5f4144445245535360a01b604082015260600190565b60208082526029908201527f4e4f545f46524f4d5f57414c4c45545f4f525f4f574e45525f4f525f57414c4c604082015268115517d313d0d2d15160ba1b606082015260800190565b6020808252600d908201526c24a72b20a624a22fa7aba722a960991b604082015260600190565b6020808252601190820152702727aa2fa32927a6afa3aaa0a92224a0a760791b604082015260600190565b6020808252600c908201526b4144445f4f564552464c4f5760a01b604082015260600190565b602080825260129082015271544f4f5f4d414e595f475541524449414e5360701b604082015260600190565b6020808252600f908201526e24a9afaba0a62622aa2fa7aba722a960891b604082015260600190565b6020808252600c908201526b1391515117d513d7d5d0525560a21b604082015260600190565b6020808252600a90820152695a45524f5f56414c554560b01b604082015260600190565b6020808252600690820152651313d0d2d15160d21b604082015260600190565b6020808252601a908201527f4e4f5f454e4f5547485f4143544956455f475541524449414e53000000000000604082015260600190565b9182526001600160a01b0316602082015260400190565b60405181810167ffffffffffffffff81118282101715614b2457600080fd5b604052919050565b600067ffffffffffffffff821115614b42578081fd5b5060209081020190565b600082356139fb81614bac565b6000808335601e19843603018112614b6f578283fd5b830160208101925035905067ffffffffffffffff811115614b8f57600080fd5b60208102360383131561315957600080fd5b80600381106120ee57fe5b6001600160a01b0381168114613e8c57600080fdfea2646970667358221220de67b940cde2beb3b3177eed51ac133cbd1a1ba364554b6eed0f7d46de3d3e2664736f6c63430007000033000000000000000000000000a3d090b3ec08765a900097ecbe388a5dfc81e9e100000000000000000000000072bea880b07b3c814c1753a1d1c3bdefe23af3dd00000000000000000000000000000000000000000000000000000000000151800000000000000000000000000000000000000000000000000000000001d556000000000000000000000000000000000000000000000000000000000000015180