0 txs
2.2k calls
constructor
constructor(address _addyRegistry, address _wethAddr, address _userWalletTemplate, address _userConfigTemplate, address _agentTemplate, uint256 _minOwnerChangeDelay, uint256 _maxOwnerChangeDelay)
functions
_isUserWallet
viewfunction _isUserWallet(address arg0) view returns (bool)
ADDY_REGISTRY
viewfunction ADDY_REGISTRY() view returns (address)
agentBlacklist
viewfunction agentBlacklist(address arg0) view returns (bool)
agentTemplateInfo
viewfunction agentTemplateInfo() view returns (tuple)
canCancelCriticalAction
viewfunction canCancelCriticalAction(address _addr) view returns (bool)
canCriticalCancel
viewfunction canCriticalCancel(address arg0) view returns (bool)
canGovern
viewfunction canGovern(address _address) view returns (bool)
currentAgentTemplate
viewfunction currentAgentTemplate() view returns (address)
currentUserWalletConfigTemplate
viewfunction currentUserWalletConfigTemplate() view returns (address)
currentUserWalletTemplate
viewfunction currentUserWalletTemplate() view returns (address)
govChangeDelay
viewfunction govChangeDelay() view returns (uint256)
governance
viewfunction governance() view returns (address)
hasPendingGovChange
viewfunction hasPendingGovChange() view returns (bool)
isActivated
viewfunction isActivated() view returns (bool)
isAgent
viewfunction isAgent(address arg0) view returns (bool)
isUserWallet
viewfunction isUserWallet(address _addr) view returns (bool)
isValidAgentSetup
viewfunction isValidAgentSetup(address _owner) view returns (bool)
isValidAgentTemplate
viewfunction isValidAgentTemplate(address _newAddr) view returns (bool)
isValidTrialFundsData
viewfunction isValidTrialFundsData(address _asset, uint256 _amount) view returns (bool)
isValidUserWalletConfigTemplate
viewfunction isValidUserWalletConfigTemplate(address _newAddr) view returns (bool)
isValidUserWalletSetup
viewfunction isValidUserWalletSetup(address _owner, address _agent) view returns (bool)
isValidUserWalletTemplate
viewfunction isValidUserWalletTemplate(address _newAddr) view returns (bool)
MAX_GOV_CHANGE_DELAY
viewfunction MAX_GOV_CHANGE_DELAY() view returns (uint256)
MAX_OWNER_CHANGE_DELAY
viewfunction MAX_OWNER_CHANGE_DELAY() view returns (uint256)
MIN_GOV_CHANGE_DELAY
viewfunction MIN_GOV_CHANGE_DELAY() view returns (uint256)
MIN_OWNER_CHANGE_DELAY
viewfunction MIN_OWNER_CHANGE_DELAY() view returns (uint256)
numAgents
viewfunction numAgents() view returns (uint256)
numAgentsAllowed
viewfunction numAgentsAllowed() view returns (uint256)
numUserWallets
viewfunction numUserWallets() view returns (uint256)
numUserWalletsAllowed
viewfunction numUserWalletsAllowed() view returns (uint256)
pendingGov
viewfunction pendingGov() view returns (tuple)
recoveryCaller
viewfunction recoveryCaller() view returns (address)
shouldEnforceWhitelist
viewfunction shouldEnforceWhitelist() view returns (bool)
trialFundsData
viewfunction trialFundsData() view returns (tuple)
userWalletConfig
viewfunction userWalletConfig() view returns (tuple)
userWalletTemplate
viewfunction userWalletTemplate() view returns (tuple)
WETH_ADDR
viewfunction WETH_ADDR() view returns (address)
whitelist
viewfunction whitelist(address arg0) view returns (bool)
activate
nonpayablefunction activate(bool _shouldActivate)
cancelGovernanceChange
nonpayablefunction cancelGovernanceChange()
changeGovernance
nonpayablefunction changeGovernance(address _newGov)
confirmGovernanceChange
nonpayablefunction confirmGovernanceChange()
createAgent
nonpayablefunction createAgent() returns (address)
createAgent
nonpayablefunction createAgent(address _owner) returns (address)
createUserWallet
nonpayablefunction createUserWallet() returns (address)
createUserWallet
nonpayablefunction createUserWallet(address _owner, address _agent) returns (address)
createUserWallet
nonpayablefunction createUserWallet(address _owner) returns (address)
recoverFunds
nonpayablefunction recoverFunds(address _asset, address _recipient) returns (bool)
recoverTrialFunds
nonpayablefunction recoverTrialFunds(address _wallet, tuple[] _opportunities) returns (bool)
recoverTrialFunds
nonpayablefunction recoverTrialFunds(address _wallet) returns (bool)
recoverTrialFundsMany
nonpayablefunction recoverTrialFundsMany(tuple[] _recoveries) returns (bool)
setAgentBlacklist
nonpayablefunction setAgentBlacklist(address _agentAddr, bool _shouldBlacklist) returns (bool)
setAgentTemplate
nonpayablefunction setAgentTemplate(address _addr) returns (bool)
setCanCriticalCancel
nonpayablefunction setCanCriticalCancel(address _addr, bool _canCancel) returns (bool)
setGovernanceChangeDelay
nonpayablefunction setGovernanceChangeDelay(uint256 _numBlocks)
setNumAgentsAllowed
nonpayablefunction setNumAgentsAllowed() returns (bool)
setNumAgentsAllowed
nonpayablefunction setNumAgentsAllowed(uint256 _numAllowed) returns (bool)
setNumUserWalletsAllowed
nonpayablefunction setNumUserWalletsAllowed() returns (bool)
setNumUserWalletsAllowed
nonpayablefunction setNumUserWalletsAllowed(uint256 _numAllowed) returns (bool)
setRecoveryCaller
nonpayablefunction setRecoveryCaller(address _caller) returns (bool)
setShouldEnforceWhitelist
nonpayablefunction setShouldEnforceWhitelist(bool _shouldEnforce) returns (bool)
setTrialFundsData
nonpayablefunction setTrialFundsData(address _asset, uint256 _amount) returns (bool)
setUserWalletConfigTemplate
nonpayablefunction setUserWalletConfigTemplate(address _addr) returns (bool)
setUserWalletTemplate
nonpayablefunction setUserWalletTemplate(address _addr) returns (bool)
setWhitelist
nonpayablefunction setWhitelist(address _addr, bool _shouldWhitelist) returns (bool)
events
AgentBlacklistSet
event AgentBlacklistSet(address indexed agentAddr, bool shouldBlacklist)
AgentCreated
event AgentCreated(address indexed agent, address indexed owner, address creator)
AgentFactoryActivated
event AgentFactoryActivated(bool isActivated)
AgentFactoryFundsRecovered
event AgentFactoryFundsRecovered(address indexed asset, address indexed recipient, uint256 balance)
AgentTemplateSet
event AgentTemplateSet(address indexed template, uint256 version)
CanCriticalCancelSet
event CanCriticalCancelSet(address indexed addr, bool canCancel)
GovChangeCancelled
event GovChangeCancelled(address indexed cancelledGov, uint256 initiatedBlock, uint256 confirmBlock)
GovChangeConfirmed
event GovChangeConfirmed(address indexed prevGov, address indexed newGov, uint256 initiatedBlock, uint256 confirmBlock)
GovChangeDelaySet
event GovChangeDelaySet(uint256 delayBlocks)
GovChangeInitiated
event GovChangeInitiated(address indexed prevGov, address indexed newGov, uint256 confirmBlock)
NumAgentsAllowedSet
event NumAgentsAllowedSet(uint256 numAllowed)
NumUserWalletsAllowedSet
event NumUserWalletsAllowedSet(uint256 numAllowed)
RecoveryCallerSet
event RecoveryCallerSet(address indexed caller)
ShouldEnforceWhitelistSet
event ShouldEnforceWhitelistSet(bool shouldEnforce)
TrialFundsDataSet
event TrialFundsDataSet(address indexed asset, uint256 amount)
UserWalletConfigTemplateSet
event UserWalletConfigTemplateSet(address indexed template, uint256 version)
UserWalletCreated
event UserWalletCreated(address indexed mainAddr, address indexed configAddr, address indexed owner, address agent, address creator)
UserWalletTemplateSet
event UserWalletTemplateSet(address indexed template, uint256 version)
WhitelistSet
event WhitelistSet(address addr, bool shouldWhitelist)
errors
No errors.
creation bytecode
0x6121e25150346104795760206125f75f395f518060a01c610479576101405260206126175f395f518060a01c610479576101605260206126375f395f518060a01c610479576101805260206126575f395f518060a01c610479576101a05260206126775f395f518060a01c610479576101c052610140511561008657610160511515610088565b5f5b15610479576101405161218252610160516121a25260206126975f395f516121c25260206126b75f395f516121e2526001601c55610180516040526100ce6101e0610182565b6101e0516100dc575f6100f3565b6101a0516040526100ee6102006101b2565b610200515b15610125576101805160405261010a6102206101e2565b610220506101a05160405261012061022061025d565b610220505b6101c0516040526101376101e06102d8565b6101e05115610157576101c051604052610152610200610308565b610200505b5f60405261014051606052604036608037610170610383565b61214261047d61000039612202610000f35b6040513b610191576001610196565b604051155b156101a4575f8152506101b0565b60095460405114158152505b565b6040513b6101c15760016101c6565b604051155b156101d4575f8152506101e0565b600c5460405114158152505b565b600954606052600a54608052600b5460a05260405160c0526080516001810181811061047957905060e052426101005260c05160095560e051600a5561010051600b556040517f12cd1acc7e0d0e6d637c89fad3c6fa2d48284da69437b4da61eedcb1a8e80ea560e051610120526020610120a26001815250565b600c54606052600d54608052600e5460a05260405160c0526080516001810181811061047957905060e052426101005260c051600c5560e051600d5561010051600e556040517fc7b620d68c58917395a8d7e052e9f4061978f1873e9e90d6d587223174db3acc60e051610120526020610120a26001815250565b6040513b6102e75760016102ec565b604051155b156102fa575f815250610306565b60115460405114158152505b565b60115460605260125460805260135460a05260405160c0526080516001810181811061047957905060e052426101005260c05160115560e051601255610100516013556040517fc233e8625a9f8be88088ac9366c4b623f4a11923dbb68551a769a1f7a846f95e60e051610120526020610120a26001815250565b60405115610392576001610398565b60605115155b1561047957604051156103ab576040515f555b606051156103ba576060516005555b6040608060c05e60c0516103cf5760016103d4565b60e051155b1561044e57606051156104795760605163ed860576610100526020610100600461011c845afa610406573d5f5f3e3d5ffd5b60203d106104795761010090505160c05260605163c55728b0610100526020610100600461011c845afa61043c573d5f5f3e3d5ffd5b60203d106104795761010090505160e0525b60e05160c05110156104795760c0516121425260e05161216252606051156104775760c0516004555b565b5f80fd5f3560e01c6002603a820660011b6120ce01601e395f51565b6353aa43078118611d07576024361034176120ca576004358060a01c6120ca576102605260206102605161016052610051610280611ddb565b610280f35b633f561eff8118611d0757346120ca57600354151560405260206040f35b6399572d6f81186101dc576024361034176120ca576004358060a01c6120ca57610160526100a36101e0611d0b565b6101e0805160208160051b0180836101805e505050335f6101e0525f61018051600281116120ca5780156100f857905b8060051b6101a0015183186100ed5760016101e0526100f8565b6001018181186100d3575b50506101e0519050156120ca576101605160016101e0525f61018051600281116120ca57801561014857905b8060051b6101a00151831861013d575f6101e052610148565b600101818118610124575b50506101e0519050156120ca57610160513b156120ca5761016a6101e0611e3a565b6101e0511561017d5761016051156120ca575b436004548082018281106120ca57905090506101e05261016051600155436002556101e051600355610160515f547fa8e5a115434955f3c91f53089861da9b575399fbfbc1fc8b345ae6a18b0f193e6101e051610200526020610200a3005b63d7786ea98118611d0757346120ca577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61026052611850565b636e4fd9c88118611d0757346120ca57600154604052600254606052600354608052604051156120ca576080511561025357608051431015610255565b5f5b156120ca5760405133186120ca575f5460a0526040515f555f6001555f6002555f60035560405160a0517fb5dfe18540f75a87f8c7963e7f4942e9392be572b787d486d7868ac53a5bdf5b6040606060c05e604060c0a3005b63366836cc811861033757346120ca5733610160526102ce610260611ddb565b61026051156120ca5760015461026052600254610280526003546102a0526102a051156120ca575f6001555f6002555f600355610260517f4301277e72c59c5071608882749a82a210817721ba94066744cea89211d3838060406102806102c05e60406102c0a2005b636c42d9308118611d07576024361034176120ca576004358060a01c6120ca57606052602060605160405261036c6080611ff2565b6080f35b63a908dc808118611d07576024361034176120ca576003546120ca57336101605261039c610260611ddb565b61026051156120ca5760206121425f395f5160043510156103bd575f6103cc565b60206121625f395f5160043511155b156120ca576004356004557fb8d7f2c6802e04bfd3abb436c2b7b52bd4b37872b53bd1150146816d66ac7de2600435610260526020610260a1005b635aa6e675811861042257346120ca575f5460405260206040f35b63e77ed0d9811861043e57346120ca5760095460405260206040f35b63d06e9ebd8118611d07576044361034176120ca576004358060a01c6120ca57610260523361016052610472610280611ddb565b61028051156120ca576102605160405260243560605261049361028061209d565b610280516104aa575f6102a05260206102a06104f5565b61026051600655602435600755610260517f5a997816b08a297326dc7210ade6edda68866a278377698e4bc6167e2399d0cb602435610280526020610280a260016102805260206102805bf35b6325240810811861051f57346120ca5760015460405260025460605260035460805260606040f35b63c1ae586e8118611d0757346120ca57600c54604052600d54606052600e5460805260606040f35b63f40b1697811861056357346120ca5760045460405260206040f35b6353d6fd598118610600576044361034176120ca576004358060a01c6120ca57610260526024358060011c6120ca576102805233610160526105a66102a0611ddb565b6102a051156120ca57610280516019610260516020525f5260405f20557f0aa5ec5ffdc7f6f9c4d0dded489d7450297155cb2f71cb771e02427f7dff4f5160406102606102a05e60406102a0a160016102a05260206102a0f35b63b1bb8dd18118611d07576044361034176120ca576004358060a01c6120ca57610260526024358060011c6120ca576102805233610160526106436102a0611ddb565b6102a051156120ca57610280516016610260516020525f5260405f2055610260517f88891276668bcea2ad01bfa6dea2945fa653fe4e160fc230950382dba31f296a610280516102a05260206102a0a260016102a05260206102a0f35b63ed86057681186106be57346120ca57602061214260403960206040f35b6342af624e8118610778576024361034176120ca576004358060a01c6120ca57604052600f6040516020525f5260405f20546060526060511561070957600160805260206080610776565b5f6080526342af624e60a05260405160c052602060a0602460bc737c4be37a65e8410c0fb03d62059e3cb04f78c5655afa610746573d5f5f3e3d5ffd5b3d602081183d60201002188060a00160c0116120ca5760a0518060011c6120ca5760e0525060e051608052602060805bf35b6332bca7808118611d0757346120ca5760175460405260206040f35b63c55728b081186107b257346120ca57602061216260403960206040f35b63ee2f38928118611d0757346120ca57600c5460405260206040f35b63b57c6aac81186107ea57346120ca5760115460405260206040f35b6309ba322a8118611d07576024361034176120ca576004358060a01c6120ca5761026052336101605261081e610280611ddb565b61028051156120ca5761026051604052610839610280611f2c565b61028051610850575f6102a05260206102a0610868565b602061026051604052610864610280611f5c565b6102805bf35b632d92ff8e8118611d07576044361034176120ca576004358060a01c6120ca5760c0526024358060a01c6120ca5760e0526020600954604052600c54606052604060c060805e6108bb610100611e43565b610100f35b636aafebbb81186108dd57346120ca573360c0525f60e052610abf565b6324ae6a278118611d07576044361034176120ca576004358060a01c6120ca57610260526024358060a01c6120ca576102805233610160526109206102a0611ddb565b6102a051156120ca57610260516370a082316102c052306102e05260206102c060246102dc845afa610954573d5f5f3e3d5ffd5b60203d106120ca576102c09050516102a0526102805161097557600161097b565b61026051155b610989576102a0511561098c565b60015b156109a0575f6102e05260206102e0610a5f565b6102605163a9059cbb6102c05260406102806102e05e60206102c060446102dc5f855af16109d0573d5f5f3e3d5ffd5b3d6109e757803b156120ca57600161032052610a11565b3d602081183d6020100218806102c0016102e0116120ca576102c0518060011c6120ca5761032052505b610320905051156120ca5761028051610260517f153f864a086e6a8849df572fe63f7ea82f0b00b328e662b1759e1f06b853a1486102a0516102c05260206102c0a360016102c05260206102c05bf35b63e7cf0c668118611d07576024361034176120ca576004358060a01c6120ca5760c0525f60e052610abf565b63e660928d8118610e2c576044361034176120ca576004358060a01c6120ca5760c0526024358060a01c6120ca5760e0525b601c54156120ca5760095461010052600c5461012052604061010060405e604060c060805e610aef610140611e43565b61014051610b06575f610160526020610160610e2a565b601a54610b13575f610b22565b6019336020525f5260405f2054155b15610b36575f610140526020610140610e2a565b60175460105410610b50575f610140526020610140610e2a565b60065461014052600754610160526101405115610bb65761016051610140516370a0823161018052306101a0526020610180602461019c845afa610b96573d5f5f3e3d5ffd5b60203d106120ca5761018090505180828118828410021890509050610160525b6101205160c0516101a0526101a0516102405260e0516101c0526101c0516102605260206121826101e0396101e0516102805260206121c261020039610200516102a05260206121e261022039610220516102c05260a06003823b0359600182126120ca5781600382863c81810183610240825e50828201815ff080156120ca5790509050905090506101805261010051610180516101c0526101c0516102605260206121826101e0396101e0516102805260206121a261020039610200516102a0526101405161022052610220516102c0526101605161024052610240516102e05260a06003823b0359600182126120ca5781600382863c81810183610260825e50828201815ff080156120ca5790509050905090506101a0526101805163deaa59df6101c0526101a0516101e05260206101c060246101dc5f855af1610d00573d5f5f3e3d5ffd5b3d602081183d6020100218806101c0016101e0116120ca576101c0518060011c6120ca576102005250610200905051156120ca576101605115610dc1576101405163a9059cbb6101c0526101a0516101e052610160516102005260206101c060446101dc5f855af1610d74573d5f5f3e3d5ffd5b3d610d8b57803b156120ca57600161022052610db5565b3d602081183d6020100218806101c0016101e0116120ca576101c0518060011c6120ca5761022052505b610220905051156120ca575b6001600f6101a0516020525f5260405f2055601054600181018181106120ca57905060105560c051610180516101a0517f8b3c26ae3c6a04f8acb633fe35d121bc7726a38503c04629650f3c0011dd74df60e0516101c052336101e05260406101c0a460206101a05bf35b6312aa65498118611d07576024361034176120ca576004358060011c6120ca57610260523361016052610e60610280611ddb565b61028051156120ca5761026051601a557f3d23ae8e025ce5c0b0e38368e4dbab0e33d4e35f64b71d8829f6229cdfdf8e3d61026051610280526020610280a16001610280526020610280f35b63bd82e1b68118611d07576024361034176120ca576004358060a01c6120ca576060526020606051604052610ee16080611e81565b6080f35b63b688740a8118611d07576024361034176120ca576004358060a01c6120ca57610260523361016052610f19610280611ddb565b61028051156120ca5761026051604052610f34610280611e81565b61028051610f4b575f6102a05260206102a0610f63565b602061026051604052610f5f610280611eb1565b6102805bf35b6393e5f1928118611d07576024361034176120ca576004358060a01c6120ca576060526020606051604052610f9a6080611f2c565b6080f35b633280f0b58118611d07576024361034176120ca576004358060a01c6120ca576080526020601154604052608051606052610fd960a0611fd7565b60a0f35b63457e8e1e8118611d0757346120ca573360805261101a565b637243fb4a811861116d576024361034176120ca576004358060a01c6120ca576080525b601c54156120ca5760115460a05260a05160405260805160605261103e60c0611fd7565b60c051611052575f60e052602060e061116b565b601a5461105f575f61106e565b6019336020525f5260405f2054155b15611080575f60c052602060c061116b565b60185460155410611098575f60c052602060c061116b565b60a05160805160e05260e05161016052602061218261010039610100516101805260206121c261012039610120516101a05260206121e261014039610140516101c05260806003823b0359600182126120ca5781600382863c81810183610160825e50828201815ff080156120ca57905090509050905060c0526001601460c0516020525f5260405f2055601554600181018181106120ca57905060155560805160c0517f312fbd5a045443b15c7d6785d3fc6be1cda2be58416ac6416d8487ab88e53ae73360e052602060e0a3602060c05bf35b630fd8944c8118611d07576024361034176120ca576004358060a01c6120ca5761026052601b610260516020525f5260405f20546111c15761026051610160526111b8610280611ddb565b610280516111c4565b60015b6102a05260206102a0f35b631c796127811861124f576024361034176120ca576004358060a01c6120ca57610260523361016052611203610280611ddb565b61028051156120ca576102605160405261121e610280611ff2565b61028051611235575f6102a05260206102a061124d565b602061026051604052611249610280612022565b6102805bf35b63e48852ab8118611d0757346120ca5760115460405260125460605260135460805260606040f35b63f7befe9081186112b6576044361034176120ca576004358060a01c6120ca5760805260206080516040526024356060526112b260a061209d565b60a0f35b63601f2e2681186112d257346120ca5760105460405260206040f35b63e20d37328118611d0757346120ca5760155460405260206040f35b63cfebb6cc811861130d576024361034176120ca575f610280526113a5565b639be9558e8118611d0757346120ca5760065460405260075460605260406040f35b637ea4aa228118611d07576044361034176120ca5760243560040160148135116120ca5780355f81601481116120ca57801561139b57905b8060061b60208501018160061b6102a0018135815260208201358060a01c6120ca5760208201525050600101818118611367575b5050806102805250505b6004358060a01c6120ca576102605233610160526113c46107a0611ddb565b6107a0516113d7576008543318156113da565b60015b156120ca576020610260516366d24deb6107a0526020806107c052806107c0015f610280518083528060061b5f82601481116120ca57801561143b57905b8060061b6102a0018160061b6020880101604082825e5050600101818118611418575b5050820160200191505090508101505060206107a06105446107bc5f855af1611466573d5f5f3e3d5ffd5b3d602081183d6020100218806107a0016107c0116120ca576107a0518060011c6120ca57610d005250610d009050f35b63abcc0ff28118611d07576024361034176120ca5760043560040160648135116120ca5780355f81606481116120ca57801561156857905b8060051b602085010135602085010161054082026102800181358060a01c6120ca5781526020820135820160148135116120ca5780355f81601481116120ca57801561155157905b8060061b6020850101602086018260061b602082010190508135815260208201358060a01c6120ca5760208201525050600101818118611516575b5050806020840152505050506001018181186114ce575b505080610260525050336101605261158262020f80611ddb565b62020f805161159657600854331815611599565b60015b156120ca575f61026051606481116120ca57801561169757905b6105408102610280016105408162020f805e5062020f80516366d24deb620214c052602080620214e05280620214e0015f62020fa0518083528060061b5f82601481116120ca57801561162657905b8060061b62020fc0018160061b6020880101604082825e5050600101818118611602575b505082016020019150509050810150506020620214c0610544620214dc5f855af1611653573d5f5f3e3d5ffd5b3d602081183d602010021880620214c001620214e0116120ca57620214c0518060011c6120ca5762021a20525062021a20905051156120ca576001018181186115b3575b505060065462020f805262020f80516370a0823162020fc0523062020fe052602062020fc0602462020fdc845afa6116d1573d5f5f3e3d5ffd5b60203d106120ca5762020fc090505162020fa05262020fa051156117915762020f805163a9059cbb62020fc052737c4be37a65e8410c0fb03d62059e3cb04f78c56562020fe05262020fa0516202100052602062020fc0604462020fdc5f855af161173e573d5f5f3e3d5ffd5b3d61175657803b156120ca5760016202102052611784565b3d602081183d60201002188062020fc00162020fe0116120ca5762020fc0518060011c6120ca576202102052505b62021020905051156120ca575b600162020fc052602062020fc0f35b63fcc6c3388118611d07576024361034176120ca576004358060a01c6120ca576102605233610160526117d4610280611ddb565b61028051156120ca57610260516117f4575f610280526020610280611831565b61026051600855610260517fc559b9d46f7fbdd0b317f5adb12e551801dbe35bb5d36d86ad1650a11a0a8b695f610280a260016102805260206102805bf35b638adddb1081186118ac576024361034176120ca57600435610260525b3361016052611860610280611ddb565b61028051156120ca57610260516017557fe63f7a001fc53d83b10b46a9e0c641bf5a494c33fc5e2a65d6ee1509df49aaa761026051610280526020610280a16001610280526020610280f35b63751cfafe8118611925576024361034176120ca57600435610260525b33610160526118d9610280611ddb565b61028051156120ca57610260516018557f2db5757e0783998cb09a70a8bbda0764e5d919afdf5f558fccb1cd33a87dcf1261026051610280526020610280a16001610280526020610280f35b63199f88128118611d0757346120ca5760206121e260403960206040f35b63ba76fc6f811861197d57346120ca577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610260526118c9565b631b1f8c058118611d0757346120ca57601a5460405260206040f35b6383deff0e8118611d07576044361034176120ca576004358060a01c6120ca57610260526024358060011c6120ca576102805233610160526119dc6102a0611ddb565b6102a051156120ca57610260516119f4576001611a2c565b61028051601b610260516020525f5260405f205418611a14576001611a2c565b6102605161016052611a276102a0611ddb565b6102a0515b15611a40575f6102c05260206102c0611a93565b61028051601b610260516020525f5260405f2055610260517f6de48abbd83f07b7b3a1233375c0d2f42ffccd504512f104f03d86ac10e55594610280516102a05260206102a0a260016102a05260206102a05bf35b63ce5e84a38118611d07576024361034176120ca576004358060011c6120ca57610260523361016052611ac9610280611ddb565b61028051156120ca5761026051601c557f95980685d636ce829cef772691241a033b4ca773bf32502290d8c591f3bb808761026051610280526020610280a1005b63bea882c78118611d0757346120ca5760085460405260206040f35b6391dde7c38118611d0757346120ca57600954604052600a54606052600b5460805260606040f35b63a02651f88118611d07576024361034176120ca576004358060a01c6120ca57604052600f6040516020525f5260405f205460605260206060f35b631ffbb0648118611bc4576024361034176120ca576004358060a01c6120ca5760405260146040516020525f5260405f205460605260206060f35b63c86cfae68118611d0757346120ca5760206121c260403960206040f35b637879735a8118611d07576024361034176120ca576004358060a01c6120ca5760405260166040516020525f5260405f205460605260206060f35b634117d8a48118611d0757346120ca5760185460405260206040f35b639b19251a8118611d07576024361034176120ca576004358060a01c6120ca5760405260196040516020525f5260405f205460605260206060f35b6353ebca898118611d07576024361034176120ca576004358060a01c6120ca57604052601b6040516020525f5260405f205460605260206060f35b634a8c1fb48118611d0757346120ca57601c5460405260206040f35b6394b51d378118611d0757346120ca57602061218260403960206040f35b6382dfc5f78118611d0757346120ca5760206121a260403960206040f35b5f5ffd5b5f6040525f5460a05260a05115611d3b57604051600181116120ca5760a0518160051b6060015260018101604052505b60055460c05260c05115611dc75760c051635aa6e675610100526020610100600461011c845afa611d6e573d5f5f3e3d5ffd5b3d602081183d60201002188061010001610120116120ca57610100518060a01c6120ca57610140525061014090505160e05260e05115611dc757604051600181116120ca5760e0518160051b6060015260018101604052505b60405160208160051b01806040845e505050565b61016051611dea6101e0611d0b565b6101e05f610240525f8151600281116120ca578015611e2b57905b8060051b6020840101518418611e2057600161024052611e2b565b600101818118611e05575b50506102405190509050815250565b60055415815250565b604051611e51576001611e56565b606051155b15611e64575f815250611e7f565b60805115611e795760a0516080511415611e7b565b5f5b8152505b565b6040513b611e90576001611e95565b604051155b15611ea3575f815250611eaf565b60095460405114158152505b565b600954606052600a54608052600b5460a05260405160c052608051600181018181106120ca57905060e052426101005260c05160095560e051600a5561010051600b556040517f12cd1acc7e0d0e6d637c89fad3c6fa2d48284da69437b4da61eedcb1a8e80ea560e051610120526020610120a26001815250565b6040513b611f3b576001611f40565b604051155b15611f4e575f815250611f5a565b600c5460405114158152505b565b600c54606052600d54608052600e5460a05260405160c052608051600181018181106120ca57905060e052426101005260c051600c5560e051600d5561010051600e556040517fc7b620d68c58917395a8d7e052e9f4061978f1873e9e90d6d587223174db3acc60e051610120526020610120a26001815250565b604051611fe7575f815250611ff0565b60605115158152505b565b6040513b612001576001612006565b604051155b15612014575f815250612020565b60115460405114158152505b565b60115460605260125460805260135460a05260405160c052608051600181018181106120ca57905060e052426101005260c05160115560e051601255610100516013556040517fc233e8625a9f8be88088ac9366c4b623f4a11923dbb68551a769a1f7a846f95e60e051610120526020610120a26001815250565b6040513b6120ac5760016120b1565b604051155b156120bf575f8152506120c8565b60605115158152505b565b5f80fd12ee1d071c1d1d07132f05470a6111cf0f651b0a1be219431d071ce918331d071496007402ae1d071b4e1c740fdd1d07086a1d070eac1d071c391ccb07940a8d0ee51d0706a0005619991d0712771d0707ce1b26021600181d0704071caf1d070ff60f9e04f71d0717a01d071b8908c003701a9585582024801e08a15fe36ea2660da03ff0936e0e5737e783b07384622453ebc32ecc1619214281187418c0a1657679706572830004010038000000000000000000000000dccab9855d7ee558409ebdf358a3a44a8b2415b30000000000000000000000004200000000000000000000000000000000000006000000000000000000000000f614bb656a8b1b8646b25f3ca4a9655e407d38e5000000000000000000000000aee931cc57cfbe31328bcff092af7ec7dfd7ebc80000000000000000000000002e3754ad00dcc1c31ee1ea46379da83bd02896f700000000000000000000000000000000000000000000000000000000000054600000000000000000000000000000000000000000000000000000000000049d40