{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"addOwnerWithThreshold","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"_threshold","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"approveHash","inputs":[{"name":"hashToApprove","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"approvedHashes","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"changeThreshold","inputs":[{"name":"_threshold","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"checkNSignatures","inputs":[{"name":"dataHash","type":"bytes32","internalType":"bytes32"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"signatures","type":"bytes","internalType":"bytes"},{"name":"requiredSignatures","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"view"},{"type":"function","name":"checkSignatures","inputs":[{"name":"dataHash","type":"bytes32","internalType":"bytes32"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"signatures","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"view"},{"type":"function","name":"disableModule","inputs":[{"name":"prevModule","type":"address","internalType":"address"},{"name":"module","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"domainSeparator","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"enableModule","inputs":[{"name":"module","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"encodeTransactionData","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"operation","type":"uint8","internalType":"enum Enum.Operation"},{"name":"safeTxGas","type":"uint256","internalType":"uint256"},{"name":"baseGas","type":"uint256","internalType":"uint256"},{"name":"gasPrice","type":"uint256","internalType":"uint256"},{"name":"gasToken","type":"address","internalType":"address"},{"name":"refundReceiver","type":"address","internalType":"address"},{"name":"_nonce","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"execTransaction","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"operation","type":"uint8","internalType":"enum Enum.Operation"},{"name":"safeTxGas","type":"uint256","internalType":"uint256"},{"name":"baseGas","type":"uint256","internalType":"uint256"},{"name":"gasPrice","type":"uint256","internalType":"uint256"},{"name":"gasToken","type":"address","internalType":"address"},{"name":"refundReceiver","type":"address","internalType":"address payable"},{"name":"signatures","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"payable"},{"type":"function","name":"execTransactionFromModule","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"operation","type":"uint8","internalType":"enum Enum.Operation"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"execTransactionFromModuleReturnData","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"operation","type":"uint8","internalType":"enum Enum.Operation"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"getChainId","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getModulesPaginated","inputs":[{"name":"start","type":"address","internalType":"address"},{"name":"pageSize","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"array","type":"address[]","internalType":"address[]"},{"name":"next","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getOwners","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getStorageAt","inputs":[{"name":"offset","type":"uint256","internalType":"uint256"},{"name":"length","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getThreshold","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTransactionHash","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"operation","type":"uint8","internalType":"enum Enum.Operation"},{"name":"safeTxGas","type":"uint256","internalType":"uint256"},{"name":"baseGas","type":"uint256","internalType":"uint256"},{"name":"gasPrice","type":"uint256","internalType":"uint256"},{"name":"gasToken","type":"address","internalType":"address"},{"name":"refundReceiver","type":"address","internalType":"address"},{"name":"_nonce","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"isModuleEnabled","inputs":[{"name":"module","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"nonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"removeOwner","inputs":[{"name":"prevOwner","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"},{"name":"_threshold","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"requiredTxGas","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"operation","type":"uint8","internalType":"enum Enum.Operation"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"setFallbackHandler","inputs":[{"name":"handler","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setGuard","inputs":[{"name":"guard","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setup","inputs":[{"name":"_owners","type":"address[]","internalType":"address[]"},{"name":"_threshold","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"fallbackHandler","type":"address","internalType":"address"},{"name":"paymentToken","type":"address","internalType":"address"},{"name":"payment","type":"uint256","internalType":"uint256"},{"name":"paymentReceiver","type":"address","internalType":"address payable"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"signedMessages","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"simulateAndRevert","inputs":[{"name":"targetContract","type":"address","internalType":"address"},{"name":"calldataPayload","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"swapOwner","inputs":[{"name":"prevOwner","type":"address","internalType":"address"},{"name":"oldOwner","type":"address","internalType":"address"},{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AddedOwner","inputs":[{"name":"owner","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ApproveHash","inputs":[{"name":"approvedHash","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"owner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ChangedFallbackHandler","inputs":[{"name":"handler","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ChangedGuard","inputs":[{"name":"guard","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ChangedThreshold","inputs":[{"name":"threshold","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"DisabledModule","inputs":[{"name":"module","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"EnabledModule","inputs":[{"name":"module","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ExecutionFailure","inputs":[{"name":"txHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"payment","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ExecutionFromModuleFailure","inputs":[{"name":"module","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ExecutionFromModuleSuccess","inputs":[{"name":"module","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ExecutionSuccess","inputs":[{"name":"txHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"payment","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"RemovedOwner","inputs":[{"name":"owner","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SafeReceived","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SafeSetup","inputs":[{"name":"initiator","type":"address","indexed":true,"internalType":"address"},{"name":"owners","type":"address[]","indexed":false,"internalType":"address[]"},{"name":"threshold","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"initializer","type":"address","indexed":false,"internalType":"address"},{"name":"fallbackHandler","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SignMsg","inputs":[{"name":"msgHash","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506001600455613fb6806100256000396000f3fe6080604052600436106101dc5760003560e01c8063affed0e011610102578063e19a9dd911610095578063f08a032311610064578063f08a032314610620578063f698da2514610640578063f8dc5dd9146106a7578063ffa1ad74146106c757610218565b8063e19a9dd9146105ab578063e318b52b146105cb578063e75235b8146105eb578063e86637db1461060057610218565b8063cc2f8452116100d1578063cc2f84521461051d578063d4d9bdcd1461054b578063d8d11f781461056b578063e009cfde1461058b57610218565b8063affed0e0146104a7578063b4faba09146104bd578063b63e800d146104dd578063c4ca3a9c146104fd57610218565b80635624b25b1161017a5780636a761202116101495780636a7612021461041a5780637d8329741461042d578063934f3a1114610465578063a0e67e2b1461048557610218565b80635624b25b146103805780635ae6bd37146103ad578063610b5925146103da578063694e80c3146103fa57610218565b80632f54bf6e116101b65780632f54bf6e146102f55780633408e47014610315578063468721a7146103325780635229073f1461035257610218565b80630d582f131461027e57806312fb68e0146102a05780632d9ad53d146102c057610218565b366102185760405134815233907f3d0ce9bfc3ed7d6862dbb28b2dea94561fe714a1b4d019aa8af39730d1ad7c3d9060200160405180910390a2005b34801561022457600080fd5b507f6c9a6c4a39284e37ed1cf53d337577d14212a4870fb976a4366c693b939918d580548061024f57005b36600080373360601b365260008060143601600080855af190503d6000803e80610278573d6000fd5b503d6000f35b34801561028a57600080fd5b5061029e6102993660046132ce565b610710565b005b3480156102ac57600080fd5b5061029e6102bb3660046133d4565b610966565b3480156102cc57600080fd5b506102e06102db366004613449565b610fbb565b60405190151581526020015b60405180910390f35b34801561030157600080fd5b506102e0610310366004613449565b611010565b34801561032157600080fd5b50465b6040519081526020016102ec565b34801561033e57600080fd5b506102e061034d366004613475565b611062565b34801561035e57600080fd5b5061037261036d366004613475565b611178565b6040516102ec92919061354a565b34801561038c57600080fd5b506103a061039b366004613565565b6111ae565b6040516102ec9190613587565b3480156103b957600080fd5b506103246103c836600461359a565b60076020526000908152604090205481565b3480156103e657600080fd5b5061029e6103f5366004613449565b611234565b34801561040657600080fd5b5061029e61041536600461359a565b611426565b6102e06104283660046135fc565b61153a565b34801561043957600080fd5b506103246104483660046132ce565b600860209081526000928352604080842090915290825290205481565b34801561047157600080fd5b5061029e6104803660046136d5565b611934565b34801561049157600080fd5b5061049a6119b0565b6040516102ec9190613793565b3480156104b357600080fd5b5061032460055481565b3480156104c957600080fd5b5061029e6104d83660046137a6565b611ac8565b3480156104e957600080fd5b5061029e6104f83660046137f6565b611aeb565b34801561050957600080fd5b506103246105183660046138eb565b611c26565b34801561052957600080fd5b5061053d6105383660046132ce565b611cf8565b6040516102ec92919061395c565b34801561055757600080fd5b5061029e61056636600461359a565b611e26565b34801561057757600080fd5b50610324610586366004613994565b611efa565b34801561059757600080fd5b5061029e6105a6366004613a55565b611f27565b3480156105b757600080fd5b5061029e6105c6366004613449565b612106565b3480156105d757600080fd5b5061029e6105e6366004613a8e565b612178565b3480156105f757600080fd5b50600454610324565b34801561060c57600080fd5b506103a061061b366004613994565b612504565b34801561062c57600080fd5b5061029e61063b366004613449565b61269d565b34801561064c57600080fd5b5061032460007f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a794692184660408051602081019390935282015230606082015260800160405160208183030381529060405280519060200120905090565b3480156106b357600080fd5b5061029e6106c2366004613ad9565b612713565b3480156106d357600080fd5b506103a06040518060400160405280600581526020017f312e332e3000000000000000000000000000000000000000000000000000000081525081565b6107186129a5565b73ffffffffffffffffffffffffffffffffffffffff821615801590610754575073ffffffffffffffffffffffffffffffffffffffff8216600114155b8015610776575073ffffffffffffffffffffffffffffffffffffffff82163014155b6107e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303300000000000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8281166000908152600260205260409020541615610870576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303400000000000000000000000000000000000000000000000000000060448201526064016107d8565b60026020527fe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0805473ffffffffffffffffffffffffffffffffffffffff8481166000818152604081208054939094167fffffffffffffffffffffffff00000000000000000000000000000000000000009384161790935560018352835490911617909155600380549161090283613b49565b909155505060405173ffffffffffffffffffffffffffffffffffffffff831681527f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea269060200160405180910390a180600454146109625761096281611426565b5050565b610971816041612a10565b825110156109db576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330323000000000000000000000000000000000000000000000000000000060448201526064016107d8565b6000808060008060005b86811015610faf576041818102890160208101516040820151919092015160ff16955090935091506000849003610cbc579193508391610a26876041612a10565b821015610a8f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330323100000000000000000000000000000000000000000000000000000060448201526064016107d8565b8751610a9c836020612a4c565b1115610b04576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330323200000000000000000000000000000000000000000000000000000060448201526064016107d8565b602082890181015189519091610b27908390610b21908790612a4c565b90612a4c565b1115610b8f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330323300000000000000000000000000000000000000000000000000000060448201526064016107d8565b6040517f20c13b0b000000000000000000000000000000000000000000000000000000008082528a85016020019173ffffffffffffffffffffffffffffffffffffffff8916906320c13b0b90610beb908f908690600401613b81565b602060405180830381865afa158015610c08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c2c9190613ba6565b7fffffffff000000000000000000000000000000000000000000000000000000001614610cb5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330323400000000000000000000000000000000000000000000000000000060448201526064016107d8565b5050610eaf565b8360ff16600103610d8a5791935083913373ffffffffffffffffffffffffffffffffffffffff84161480610d1f575073ffffffffffffffffffffffffffffffffffffffff851660009081526008602090815260408083208d845290915290205415155b610d85576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330323500000000000000000000000000000000000000000000000000000060448201526064016107d8565b610eaf565b601e8460ff161115610e4f576040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c81018b9052600190605c0160405160208183030381529060405280519060200120600486610def9190613be8565b6040805160008152602081018083529390935260ff90911690820152606081018590526080810184905260a0016020604051602081039080840390855afa158015610e3e573d6000803e3d6000fd5b505050602060405103519450610eaf565b6040805160008152602081018083528c905260ff861691810191909152606081018490526080810183905260019060a0016020604051602081039080840390855afa158015610ea2573d6000803e3d6000fd5b5050506020604051035194505b8573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16118015610f10575073ffffffffffffffffffffffffffffffffffffffff8581166000908152600260205260409020541615155b8015610f33575073ffffffffffffffffffffffffffffffffffffffff8516600114155b610f99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330323600000000000000000000000000000000000000000000000000000060448201526064016107d8565b8495508080610fa790613b49565b9150506109e5565b50505050505050505050565b6000600173ffffffffffffffffffffffffffffffffffffffff83161480159061100a575073ffffffffffffffffffffffffffffffffffffffff8281166000908152600160205260409020541615155b92915050565b600073ffffffffffffffffffffffffffffffffffffffff821660011480159061100a57505073ffffffffffffffffffffffffffffffffffffffff90811660009081526002602052604090205416151590565b60003360011480159061109957503360009081526001602052604090205473ffffffffffffffffffffffffffffffffffffffff1615155b6110ff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475331303400000000000000000000000000000000000000000000000000000060448201526064016107d8565b61110c858585855a612a68565b905080156111445760405133907f6895c13664aa4f67288b25d7a21d7aaa34916e355fb9b6fae0a139a9085becb890600090a2611170565b60405133907facd2c8702804128fdb0db2bb49f6d127dd0181c13fd45dbfe16de0930e2bd37590600090a25b949350505050565b6000606061118886868686611062565b915060405160203d0181016040523d81523d6000602083013e8091505094509492505050565b606060006111bd836020613c0b565b67ffffffffffffffff8111156111d5576111d56132fa565b6040519080825280601f01601f1916602001820160405280156111ff576020820181803683370190505b50905060005b8381101561122c57848101546020808302840101528061122481613b49565b915050611205565b509392505050565b61123c6129a5565b73ffffffffffffffffffffffffffffffffffffffff811615801590611278575073ffffffffffffffffffffffffffffffffffffffff8116600114155b6112de576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475331303100000000000000000000000000000000000000000000000000000060448201526064016107d8565b73ffffffffffffffffffffffffffffffffffffffff818116600090815260016020526040902054161561136d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475331303200000000000000000000000000000000000000000000000000000060448201526064016107d8565b600160208181527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f805473ffffffffffffffffffffffffffffffffffffffff858116600081815260408082208054949095167fffffffffffffffffffffffff000000000000000000000000000000000000000094851617909455959095528254168417909155519182527fecdf3a3effea5783a3c4c2140e677577666428d44ed9d474a0b3a4c9943f844091015b60405180910390a150565b61142e6129a5565b60035481111561149a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303100000000000000000000000000000000000000000000000000000060448201526064016107d8565b6001811015611505576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303200000000000000000000000000000000000000000000000000000060448201526064016107d8565b60048190556040518181527f610f7ff2b304ae8903c3de74c60c6ab1f7d6226b3f52c5161905bb5ad4039c939060200161141b565b60008060006115548e8e8e8e8e8e8e8e8e8e600554612504565b60058054919250600061156683613b49565b909155505080516020820120915061157f828286611934565b5060006115aa7f4a204f620c8c5ccdca3fd54d003badd85ba500436a431f0cbda4f558c93c34c85490565b905073ffffffffffffffffffffffffffffffffffffffff81161561164a578073ffffffffffffffffffffffffffffffffffffffff166375f0bb528f8f8f8f8f8f8f8f8f8f8f336040518d63ffffffff1660e01b81526004016116179c9b9a99989796959493929190613cb2565b600060405180830381600087803b15801561163157600080fd5b505af1158015611645573d6000803e3d6000fd5b505050505b6116766116598a6109c4613dc8565b603f6116668c6040613c0b565b6116709190613de0565b90612aaf565b611682906101f4613dc8565b5a10156116eb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330313000000000000000000000000000000000000000000000000000000060448201526064016107d8565b60005a905061175c8f8f8f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508e8c600014611749578e612a68565b6109c45a6117579190613e1b565b612a68565b93506117695a8290612ac6565b9050838061177657508915155b8061178057508715155b6117e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330313300000000000000000000000000000000000000000000000000000060448201526064016107d8565b600088156117fe576117fb828b8b8b8b612ae1565b90505b84156118425760408051858152602081018390527f442e715f626346e8c54381002da614f62bee8d27386535b2521ec8540898556e910160405180910390a161187c565b60408051858152602081018390527f23428b18acfb3ea64b08dc0c1d296ea9c09702c09083ca5272e64d115b687d23910160405180910390a15b505073ffffffffffffffffffffffffffffffffffffffff811615611923576040517f9327136800000000000000000000000000000000000000000000000000000000815260048101839052831515602482015273ffffffffffffffffffffffffffffffffffffffff821690639327136890604401600060405180830381600087803b15801561190a57600080fd5b505af115801561191e573d6000803e3d6000fd5b505050505b50509b9a5050505050505050505050565b6004548061199e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330303100000000000000000000000000000000000000000000000000000060448201526064016107d8565b6119aa84848484610966565b50505050565b6060600060035467ffffffffffffffff8111156119cf576119cf6132fa565b6040519080825280602002602001820160405280156119f8578160200160208202803683370190505b506001600090815260026020527fe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0549192509073ffffffffffffffffffffffffffffffffffffffff165b73ffffffffffffffffffffffffffffffffffffffff8116600114611ac05780838381518110611a7357611a73613e32565b73ffffffffffffffffffffffffffffffffffffffff928316602091820292909201810191909152918116600090815260029092526040909120541681611ab881613b49565b925050611a42565b509092915050565b600080825160208401855af480600052503d6020523d600060403e60403d016000fd5b611b298a8a808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508c9250612c72915050565b73ffffffffffffffffffffffffffffffffffffffff841615611b6d57611b6d847f6c9a6c4a39284e37ed1cf53d337577d14212a4870fb976a4366c693b939918d555565b611bad8787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061303f92505050565b8115611bc457611bc282600060018685612ae1565b505b3373ffffffffffffffffffffffffffffffffffffffff167f141df868a6331af528e38c83b7aa03edc19be66e37ae67f9285bf4f8e3c6a1a88b8b8b8b89604051611c12959493929190613e61565b60405180910390a250505050505050505050565b6000805a9050611c6f878787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525089925050505a612a68565b611c7857600080fd5b60005a611c859083613e1b565b905080604051602001611c9a91815260200190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a00000000000000000000000000000000000000000000000000000000082526107d891600401613587565b606060008267ffffffffffffffff811115611d1557611d156132fa565b604051908082528060200260200182016040528015611d3e578160200160208202803683370190505b5073ffffffffffffffffffffffffffffffffffffffff80861660009081526001602052604081205492945091165b73ffffffffffffffffffffffffffffffffffffffff811615801590611da8575073ffffffffffffffffffffffffffffffffffffffff8116600114155b8015611db357508482105b15611e185780848381518110611dcb57611dcb613e32565b73ffffffffffffffffffffffffffffffffffffffff928316602091820292909201810191909152918116600090815260019092526040909120541681611e1081613b49565b925050611d6c565b908352919491935090915050565b3360009081526002602052604090205473ffffffffffffffffffffffffffffffffffffffff16611eb2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330333000000000000000000000000000000000000000000000000000000060448201526064016107d8565b336000818152600860209081526040808320858452909152808220600190555183917ff2a0eb156472d1440255b0d7c1e19cc07115d1051fe605b0dce69acfec884d9c91a350565b6000611f0f8c8c8c8c8c8c8c8c8c8c8c612504565b8051906020012090509b9a5050505050505050505050565b611f2f6129a5565b73ffffffffffffffffffffffffffffffffffffffff811615801590611f6b575073ffffffffffffffffffffffffffffffffffffffff8116600114155b611fd1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475331303100000000000000000000000000000000000000000000000000000060448201526064016107d8565b73ffffffffffffffffffffffffffffffffffffffff828116600090815260016020526040902054811690821614612064576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475331303300000000000000000000000000000000000000000000000000000060448201526064016107d8565b73ffffffffffffffffffffffffffffffffffffffff8181166000818152600160209081526040808320805488871685528285208054919097167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790965592849052825490941690915591519081527faab4fa2b463f581b2b32cb3b7e3b704b9ce37cc209b5fb4d77e593ace405427691015b60405180910390a15050565b61210e6129a5565b7f4a204f620c8c5ccdca3fd54d003badd85ba500436a431f0cbda4f558c93c34c881815560405173ffffffffffffffffffffffffffffffffffffffff831681527f1151116914515bc0891ff9047a6cb32cf902546f83066499bcf8ba33d2353fa2906020016120fa565b6121806129a5565b73ffffffffffffffffffffffffffffffffffffffff8116158015906121bc575073ffffffffffffffffffffffffffffffffffffffff8116600114155b80156121de575073ffffffffffffffffffffffffffffffffffffffff81163014155b612244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303300000000000000000000000000000000000000000000000000000060448201526064016107d8565b73ffffffffffffffffffffffffffffffffffffffff81811660009081526002602052604090205416156122d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303400000000000000000000000000000000000000000000000000000060448201526064016107d8565b73ffffffffffffffffffffffffffffffffffffffff82161580159061230f575073ffffffffffffffffffffffffffffffffffffffff8216600114155b612375576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303300000000000000000000000000000000000000000000000000000060448201526064016107d8565b73ffffffffffffffffffffffffffffffffffffffff838116600090815260026020526040902054811690831614612408576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303500000000000000000000000000000000000000000000000000000060448201526064016107d8565b73ffffffffffffffffffffffffffffffffffffffff8281166000818152600260209081526040808320805487871680865283862080549289167fffffffffffffffffffffffff0000000000000000000000000000000000000000938416179055968a1685528285208054821690971790965592849052825490941690915591519081527ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf910160405180910390a160405173ffffffffffffffffffffffffffffffffffffffff821681527f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea269060200160405180910390a1505050565b606060007fbb8310d486368db6bd6f849402fdd73ad53d316b5a4b2644ad6efe0f941286d860001b8d8d8d8d60405161253e929190613ee7565b604051908190038120612564949392918e908e908e908e908e908e908e90602001613ef7565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052805160209091012090507f19000000000000000000000000000000000000000000000000000000000000007f010000000000000000000000000000000000000000000000000000000000000061263860007f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a794692184660408051602081019390935282015230606082015260800160405160208183030381529060405280519060200120905090565b6040517fff0000000000000000000000000000000000000000000000000000000000000093841660208201529290911660218301526022820152604281018290526062016040516020818303038152906040529150509b9a5050505050505050505050565b6126a56129a5565b6126cd817f6c9a6c4a39284e37ed1cf53d337577d14212a4870fb976a4366c693b939918d555565b60405173ffffffffffffffffffffffffffffffffffffffff821681527f5ac6c46c93c8d0e53714ba3b53db3e7c046da994313d7ed0d192028bc7c228b09060200161141b565b61271b6129a5565b80600160035461272b9190613e1b565b1015612793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303100000000000000000000000000000000000000000000000000000060448201526064016107d8565b73ffffffffffffffffffffffffffffffffffffffff8216158015906127cf575073ffffffffffffffffffffffffffffffffffffffff8216600114155b612835576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303300000000000000000000000000000000000000000000000000000060448201526064016107d8565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600260205260409020548116908316146128c8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303500000000000000000000000000000000000000000000000000000060448201526064016107d8565b73ffffffffffffffffffffffffffffffffffffffff828116600081815260026020526040808220805488861684529183208054929095167fffffffffffffffffffffffff0000000000000000000000000000000000000000928316179094559181528254909116909155600380549161294083613f74565b909155505060405173ffffffffffffffffffffffffffffffffffffffff831681527ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf9060200160405180910390a180600454146129a0576129a081611426565b505050565b333014612a0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330333100000000000000000000000000000000000000000000000000000060448201526064016107d8565b565b600082600003612a225750600061100a565b6000612a2e8385613c0b565b905082612a3b8583613de0565b14612a4557600080fd5b9392505050565b600080612a598385613dc8565b905083811015612a4557600080fd5b60006001836001811115612a7e57612a7e613c48565b03612a96576000808551602087018986f49050612aa6565b600080855160208701888a87f190505b95945050505050565b600081831015612abf5781612a45565b5090919050565b600082821115612ad557600080fd5b60006111708385613e1b565b60008073ffffffffffffffffffffffffffffffffffffffff831615612b065782612b08565b325b905073ffffffffffffffffffffffffffffffffffffffff8416612be757612b473a8610612b35573a612b37565b855b612b418989612a4c565b90612a10565b60405190925073ffffffffffffffffffffffffffffffffffffffff82169083156108fc029084906000818181858888f19350505050612be2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330313100000000000000000000000000000000000000000000000000000060448201526064016107d8565b612c68565b612bf585612b418989612a4c565b9150612c028482846131cf565b612c68576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330313200000000000000000000000000000000000000000000000000000060448201526064016107d8565b5095945050505050565b60045415612cdc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303000000000000000000000000000000000000000000000000000000060448201526064016107d8565b8151811115612d47576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303100000000000000000000000000000000000000000000000000000060448201526064016107d8565b6001811015612db2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303200000000000000000000000000000000000000000000000000000060448201526064016107d8565b600160005b8351811015612fe7576000848281518110612dd457612dd4613e32565b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015612e32575073ffffffffffffffffffffffffffffffffffffffff8116600114155b8015612e54575073ffffffffffffffffffffffffffffffffffffffff81163014155b8015612e8c57508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b612ef2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303300000000000000000000000000000000000000000000000000000060448201526064016107d8565b73ffffffffffffffffffffffffffffffffffffffff8181166000908152600260205260409020541615612f81576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303400000000000000000000000000000000000000000000000000000060448201526064016107d8565b73ffffffffffffffffffffffffffffffffffffffff928316600090815260026020526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169382169390931790925580612fdf81613b49565b915050612db7565b5073ffffffffffffffffffffffffffffffffffffffff16600090815260026020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001660011790559051600355600455565b600160008190526020527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f5473ffffffffffffffffffffffffffffffffffffffff16156130e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475331303000000000000000000000000000000000000000000000000000000060448201526064016107d8565b6001600081905260208190527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f80547fffffffffffffffffffffffff000000000000000000000000000000000000000016909117905573ffffffffffffffffffffffffffffffffffffffff821615610962576131698260008360015a612a68565b610962576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330303000000000000000000000000000000000000000000000000000000060448201526064016107d8565b6040805173ffffffffffffffffffffffffffffffffffffffff841660248201526044808201849052825180830390910181526064909101909152602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781528251600093929184919082896127105a03f13d801561327c5760208114613284576000935061328f565b81935061328f565b600051158215171593505b5050509392505050565b73ffffffffffffffffffffffffffffffffffffffff811681146132bb57600080fd5b50565b80356132c981613299565b919050565b600080604083850312156132e157600080fd5b82356132ec81613299565b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261333a57600080fd5b813567ffffffffffffffff80821115613355576133556132fa565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561339b5761339b6132fa565b816040528381528660208588010111156133b457600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080608085870312156133ea57600080fd5b84359350602085013567ffffffffffffffff8082111561340957600080fd5b61341588838901613329565b9450604087013591508082111561342b57600080fd5b5061343887828801613329565b949793965093946060013593505050565b60006020828403121561345b57600080fd5b8135612a4581613299565b8035600281106132c957600080fd5b6000806000806080858703121561348b57600080fd5b843561349681613299565b935060208501359250604085013567ffffffffffffffff8111156134b957600080fd5b6134c587828801613329565b9250506134d460608601613466565b905092959194509250565b6000815180845260005b81811015613505576020818501810151868301820152016134e9565b81811115613517576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b821515815260406020820152600061117060408301846134df565b6000806040838503121561357857600080fd5b50508035926020909101359150565b602081526000612a4560208301846134df565b6000602082840312156135ac57600080fd5b5035919050565b60008083601f8401126135c557600080fd5b50813567ffffffffffffffff8111156135dd57600080fd5b6020830191508360208285010111156135f557600080fd5b9250929050565b60008060008060008060008060008060006101408c8e03121561361e57600080fd5b6136278c6132be565b9a5060208c0135995067ffffffffffffffff8060408e0135111561364a57600080fd5b61365a8e60408f01358f016135b3565b909a50985061366b60608e01613466565b975060808d0135965060a08d0135955060c08d0135945061368e60e08e016132be565b935061369d6101008e016132be565b9250806101208e013511156136b157600080fd5b506136c38d6101208e01358e01613329565b90509295989b509295989b9093969950565b6000806000606084860312156136ea57600080fd5b83359250602084013567ffffffffffffffff8082111561370957600080fd5b61371587838801613329565b9350604086013591508082111561372b57600080fd5b5061373886828701613329565b9150509250925092565b600081518084526020808501945080840160005b8381101561378857815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101613756565b509495945050505050565b602081526000612a456020830184613742565b600080604083850312156137b957600080fd5b82356137c481613299565b9150602083013567ffffffffffffffff8111156137e057600080fd5b6137ec85828601613329565b9150509250929050565b6000806000806000806000806000806101008b8d03121561381657600080fd5b8a3567ffffffffffffffff8082111561382e57600080fd5b818d0191508d601f83011261384257600080fd5b81358181111561385157600080fd5b8e60208260051b850101111561386657600080fd5b60208381019d50909b508d0135995061388160408e016132be565b985060608d013591508082111561389757600080fd5b506138a48d828e016135b3565b90975095506138b7905060808c016132be565b93506138c560a08c016132be565b925060c08b013591506138da60e08c016132be565b90509295989b9194979a5092959850565b60008060008060006080868803121561390357600080fd5b853561390e81613299565b945060208601359350604086013567ffffffffffffffff81111561393157600080fd5b61393d888289016135b3565b9094509250613950905060608701613466565b90509295509295909350565b60408152600061396f6040830185613742565b905073ffffffffffffffffffffffffffffffffffffffff831660208301529392505050565b60008060008060008060008060008060006101408c8e0312156139b657600080fd5b8b356139c181613299565b9a5060208c0135995060408c013567ffffffffffffffff8111156139e457600080fd5b6139f08e828f016135b3565b909a509850613a03905060608d01613466565b965060808c0135955060a08c0135945060c08c0135935060e08c0135613a2881613299565b92506101008c0135613a3981613299565b809250506101208c013590509295989b509295989b9093969950565b60008060408385031215613a6857600080fd5b8235613a7381613299565b91506020830135613a8381613299565b809150509250929050565b600080600060608486031215613aa357600080fd5b8335613aae81613299565b92506020840135613abe81613299565b91506040840135613ace81613299565b809150509250925092565b600080600060608486031215613aee57600080fd5b8335613af981613299565b92506020840135613b0981613299565b929592945050506040919091013590565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613b7a57613b7a613b1a565b5060010190565b604081526000613b9460408301856134df565b8281036020840152612aa681856134df565b600060208284031215613bb857600080fd5b81517fffffffff0000000000000000000000000000000000000000000000000000000081168114612a4557600080fd5b600060ff821660ff841680821015613c0257613c02613b1a565b90039392505050565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613c4357613c43613b1a565b500290565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60028110613cae577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b600061016073ffffffffffffffffffffffffffffffffffffffff8f1683528d60208401528060408401528b81840152506101808b8d828501376000818d850101527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8d01168301613d28606085018d613c77565b8a60808501528960a08501528860c0850152613d5c60e085018973ffffffffffffffffffffffffffffffffffffffff169052565b73ffffffffffffffffffffffffffffffffffffffff87166101008501528184820301610120850152613d90828201876134df565b92505050613db761014083018473ffffffffffffffffffffffffffffffffffffffff169052565b9d9c50505050505050505050505050565b60008219821115613ddb57613ddb613b1a565b500190565b600082613e16577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b600082821015613e2d57613e2d613b1a565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6080808252810185905260008660a08301825b88811015613eb1578235613e8781613299565b73ffffffffffffffffffffffffffffffffffffffff16825260209283019290910190600101613e74565b506020840196909652505073ffffffffffffffffffffffffffffffffffffffff9283166040820152911660609091015292915050565b8183823760009101908152919050565b6000610160820190508c825273ffffffffffffffffffffffffffffffffffffffff808d1660208401528b60408401528a6060840152613f39608084018b613c77565b60a083019890985260c082019690965260e0810194909452918516610100840152909316610120820152610140019190915295945050505050565b600081613f8357613f83613b1a565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019056fea164736f6c634300080f000a","sourceMap":"722:19528:78:-:0;;;2490:247;;;;;;;;;-1:-1:-1;2729:1:78;2717:9;:13;722:19528;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106101dc5760003560e01c8063affed0e011610102578063e19a9dd911610095578063f08a032311610064578063f08a032314610620578063f698da2514610640578063f8dc5dd9146106a7578063ffa1ad74146106c757610218565b8063e19a9dd9146105ab578063e318b52b146105cb578063e75235b8146105eb578063e86637db1461060057610218565b8063cc2f8452116100d1578063cc2f84521461051d578063d4d9bdcd1461054b578063d8d11f781461056b578063e009cfde1461058b57610218565b8063affed0e0146104a7578063b4faba09146104bd578063b63e800d146104dd578063c4ca3a9c146104fd57610218565b80635624b25b1161017a5780636a761202116101495780636a7612021461041a5780637d8329741461042d578063934f3a1114610465578063a0e67e2b1461048557610218565b80635624b25b146103805780635ae6bd37146103ad578063610b5925146103da578063694e80c3146103fa57610218565b80632f54bf6e116101b65780632f54bf6e146102f55780633408e47014610315578063468721a7146103325780635229073f1461035257610218565b80630d582f131461027e57806312fb68e0146102a05780632d9ad53d146102c057610218565b366102185760405134815233907f3d0ce9bfc3ed7d6862dbb28b2dea94561fe714a1b4d019aa8af39730d1ad7c3d9060200160405180910390a2005b34801561022457600080fd5b507f6c9a6c4a39284e37ed1cf53d337577d14212a4870fb976a4366c693b939918d580548061024f57005b36600080373360601b365260008060143601600080855af190503d6000803e80610278573d6000fd5b503d6000f35b34801561028a57600080fd5b5061029e6102993660046132ce565b610710565b005b3480156102ac57600080fd5b5061029e6102bb3660046133d4565b610966565b3480156102cc57600080fd5b506102e06102db366004613449565b610fbb565b60405190151581526020015b60405180910390f35b34801561030157600080fd5b506102e0610310366004613449565b611010565b34801561032157600080fd5b50465b6040519081526020016102ec565b34801561033e57600080fd5b506102e061034d366004613475565b611062565b34801561035e57600080fd5b5061037261036d366004613475565b611178565b6040516102ec92919061354a565b34801561038c57600080fd5b506103a061039b366004613565565b6111ae565b6040516102ec9190613587565b3480156103b957600080fd5b506103246103c836600461359a565b60076020526000908152604090205481565b3480156103e657600080fd5b5061029e6103f5366004613449565b611234565b34801561040657600080fd5b5061029e61041536600461359a565b611426565b6102e06104283660046135fc565b61153a565b34801561043957600080fd5b506103246104483660046132ce565b600860209081526000928352604080842090915290825290205481565b34801561047157600080fd5b5061029e6104803660046136d5565b611934565b34801561049157600080fd5b5061049a6119b0565b6040516102ec9190613793565b3480156104b357600080fd5b5061032460055481565b3480156104c957600080fd5b5061029e6104d83660046137a6565b611ac8565b3480156104e957600080fd5b5061029e6104f83660046137f6565b611aeb565b34801561050957600080fd5b506103246105183660046138eb565b611c26565b34801561052957600080fd5b5061053d6105383660046132ce565b611cf8565b6040516102ec92919061395c565b34801561055757600080fd5b5061029e61056636600461359a565b611e26565b34801561057757600080fd5b50610324610586366004613994565b611efa565b34801561059757600080fd5b5061029e6105a6366004613a55565b611f27565b3480156105b757600080fd5b5061029e6105c6366004613449565b612106565b3480156105d757600080fd5b5061029e6105e6366004613a8e565b612178565b3480156105f757600080fd5b50600454610324565b34801561060c57600080fd5b506103a061061b366004613994565b612504565b34801561062c57600080fd5b5061029e61063b366004613449565b61269d565b34801561064c57600080fd5b5061032460007f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a794692184660408051602081019390935282015230606082015260800160405160208183030381529060405280519060200120905090565b3480156106b357600080fd5b5061029e6106c2366004613ad9565b612713565b3480156106d357600080fd5b506103a06040518060400160405280600581526020017f312e332e3000000000000000000000000000000000000000000000000000000081525081565b6107186129a5565b73ffffffffffffffffffffffffffffffffffffffff821615801590610754575073ffffffffffffffffffffffffffffffffffffffff8216600114155b8015610776575073ffffffffffffffffffffffffffffffffffffffff82163014155b6107e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303300000000000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8281166000908152600260205260409020541615610870576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303400000000000000000000000000000000000000000000000000000060448201526064016107d8565b60026020527fe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0805473ffffffffffffffffffffffffffffffffffffffff8481166000818152604081208054939094167fffffffffffffffffffffffff00000000000000000000000000000000000000009384161790935560018352835490911617909155600380549161090283613b49565b909155505060405173ffffffffffffffffffffffffffffffffffffffff831681527f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea269060200160405180910390a180600454146109625761096281611426565b5050565b610971816041612a10565b825110156109db576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330323000000000000000000000000000000000000000000000000000000060448201526064016107d8565b6000808060008060005b86811015610faf576041818102890160208101516040820151919092015160ff16955090935091506000849003610cbc579193508391610a26876041612a10565b821015610a8f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330323100000000000000000000000000000000000000000000000000000060448201526064016107d8565b8751610a9c836020612a4c565b1115610b04576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330323200000000000000000000000000000000000000000000000000000060448201526064016107d8565b602082890181015189519091610b27908390610b21908790612a4c565b90612a4c565b1115610b8f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330323300000000000000000000000000000000000000000000000000000060448201526064016107d8565b6040517f20c13b0b000000000000000000000000000000000000000000000000000000008082528a85016020019173ffffffffffffffffffffffffffffffffffffffff8916906320c13b0b90610beb908f908690600401613b81565b602060405180830381865afa158015610c08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c2c9190613ba6565b7fffffffff000000000000000000000000000000000000000000000000000000001614610cb5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330323400000000000000000000000000000000000000000000000000000060448201526064016107d8565b5050610eaf565b8360ff16600103610d8a5791935083913373ffffffffffffffffffffffffffffffffffffffff84161480610d1f575073ffffffffffffffffffffffffffffffffffffffff851660009081526008602090815260408083208d845290915290205415155b610d85576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330323500000000000000000000000000000000000000000000000000000060448201526064016107d8565b610eaf565b601e8460ff161115610e4f576040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c81018b9052600190605c0160405160208183030381529060405280519060200120600486610def9190613be8565b6040805160008152602081018083529390935260ff90911690820152606081018590526080810184905260a0016020604051602081039080840390855afa158015610e3e573d6000803e3d6000fd5b505050602060405103519450610eaf565b6040805160008152602081018083528c905260ff861691810191909152606081018490526080810183905260019060a0016020604051602081039080840390855afa158015610ea2573d6000803e3d6000fd5b5050506020604051035194505b8573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16118015610f10575073ffffffffffffffffffffffffffffffffffffffff8581166000908152600260205260409020541615155b8015610f33575073ffffffffffffffffffffffffffffffffffffffff8516600114155b610f99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330323600000000000000000000000000000000000000000000000000000060448201526064016107d8565b8495508080610fa790613b49565b9150506109e5565b50505050505050505050565b6000600173ffffffffffffffffffffffffffffffffffffffff83161480159061100a575073ffffffffffffffffffffffffffffffffffffffff8281166000908152600160205260409020541615155b92915050565b600073ffffffffffffffffffffffffffffffffffffffff821660011480159061100a57505073ffffffffffffffffffffffffffffffffffffffff90811660009081526002602052604090205416151590565b60003360011480159061109957503360009081526001602052604090205473ffffffffffffffffffffffffffffffffffffffff1615155b6110ff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475331303400000000000000000000000000000000000000000000000000000060448201526064016107d8565b61110c858585855a612a68565b905080156111445760405133907f6895c13664aa4f67288b25d7a21d7aaa34916e355fb9b6fae0a139a9085becb890600090a2611170565b60405133907facd2c8702804128fdb0db2bb49f6d127dd0181c13fd45dbfe16de0930e2bd37590600090a25b949350505050565b6000606061118886868686611062565b915060405160203d0181016040523d81523d6000602083013e8091505094509492505050565b606060006111bd836020613c0b565b67ffffffffffffffff8111156111d5576111d56132fa565b6040519080825280601f01601f1916602001820160405280156111ff576020820181803683370190505b50905060005b8381101561122c57848101546020808302840101528061122481613b49565b915050611205565b509392505050565b61123c6129a5565b73ffffffffffffffffffffffffffffffffffffffff811615801590611278575073ffffffffffffffffffffffffffffffffffffffff8116600114155b6112de576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475331303100000000000000000000000000000000000000000000000000000060448201526064016107d8565b73ffffffffffffffffffffffffffffffffffffffff818116600090815260016020526040902054161561136d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475331303200000000000000000000000000000000000000000000000000000060448201526064016107d8565b600160208181527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f805473ffffffffffffffffffffffffffffffffffffffff858116600081815260408082208054949095167fffffffffffffffffffffffff000000000000000000000000000000000000000094851617909455959095528254168417909155519182527fecdf3a3effea5783a3c4c2140e677577666428d44ed9d474a0b3a4c9943f844091015b60405180910390a150565b61142e6129a5565b60035481111561149a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303100000000000000000000000000000000000000000000000000000060448201526064016107d8565b6001811015611505576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303200000000000000000000000000000000000000000000000000000060448201526064016107d8565b60048190556040518181527f610f7ff2b304ae8903c3de74c60c6ab1f7d6226b3f52c5161905bb5ad4039c939060200161141b565b60008060006115548e8e8e8e8e8e8e8e8e8e600554612504565b60058054919250600061156683613b49565b909155505080516020820120915061157f828286611934565b5060006115aa7f4a204f620c8c5ccdca3fd54d003badd85ba500436a431f0cbda4f558c93c34c85490565b905073ffffffffffffffffffffffffffffffffffffffff81161561164a578073ffffffffffffffffffffffffffffffffffffffff166375f0bb528f8f8f8f8f8f8f8f8f8f8f336040518d63ffffffff1660e01b81526004016116179c9b9a99989796959493929190613cb2565b600060405180830381600087803b15801561163157600080fd5b505af1158015611645573d6000803e3d6000fd5b505050505b6116766116598a6109c4613dc8565b603f6116668c6040613c0b565b6116709190613de0565b90612aaf565b611682906101f4613dc8565b5a10156116eb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330313000000000000000000000000000000000000000000000000000000060448201526064016107d8565b60005a905061175c8f8f8f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508e8c600014611749578e612a68565b6109c45a6117579190613e1b565b612a68565b93506117695a8290612ac6565b9050838061177657508915155b8061178057508715155b6117e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330313300000000000000000000000000000000000000000000000000000060448201526064016107d8565b600088156117fe576117fb828b8b8b8b612ae1565b90505b84156118425760408051858152602081018390527f442e715f626346e8c54381002da614f62bee8d27386535b2521ec8540898556e910160405180910390a161187c565b60408051858152602081018390527f23428b18acfb3ea64b08dc0c1d296ea9c09702c09083ca5272e64d115b687d23910160405180910390a15b505073ffffffffffffffffffffffffffffffffffffffff811615611923576040517f9327136800000000000000000000000000000000000000000000000000000000815260048101839052831515602482015273ffffffffffffffffffffffffffffffffffffffff821690639327136890604401600060405180830381600087803b15801561190a57600080fd5b505af115801561191e573d6000803e3d6000fd5b505050505b50509b9a5050505050505050505050565b6004548061199e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330303100000000000000000000000000000000000000000000000000000060448201526064016107d8565b6119aa84848484610966565b50505050565b6060600060035467ffffffffffffffff8111156119cf576119cf6132fa565b6040519080825280602002602001820160405280156119f8578160200160208202803683370190505b506001600090815260026020527fe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0549192509073ffffffffffffffffffffffffffffffffffffffff165b73ffffffffffffffffffffffffffffffffffffffff8116600114611ac05780838381518110611a7357611a73613e32565b73ffffffffffffffffffffffffffffffffffffffff928316602091820292909201810191909152918116600090815260029092526040909120541681611ab881613b49565b925050611a42565b509092915050565b600080825160208401855af480600052503d6020523d600060403e60403d016000fd5b611b298a8a808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508c9250612c72915050565b73ffffffffffffffffffffffffffffffffffffffff841615611b6d57611b6d847f6c9a6c4a39284e37ed1cf53d337577d14212a4870fb976a4366c693b939918d555565b611bad8787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061303f92505050565b8115611bc457611bc282600060018685612ae1565b505b3373ffffffffffffffffffffffffffffffffffffffff167f141df868a6331af528e38c83b7aa03edc19be66e37ae67f9285bf4f8e3c6a1a88b8b8b8b89604051611c12959493929190613e61565b60405180910390a250505050505050505050565b6000805a9050611c6f878787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525089925050505a612a68565b611c7857600080fd5b60005a611c859083613e1b565b905080604051602001611c9a91815260200190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a00000000000000000000000000000000000000000000000000000000082526107d891600401613587565b606060008267ffffffffffffffff811115611d1557611d156132fa565b604051908082528060200260200182016040528015611d3e578160200160208202803683370190505b5073ffffffffffffffffffffffffffffffffffffffff80861660009081526001602052604081205492945091165b73ffffffffffffffffffffffffffffffffffffffff811615801590611da8575073ffffffffffffffffffffffffffffffffffffffff8116600114155b8015611db357508482105b15611e185780848381518110611dcb57611dcb613e32565b73ffffffffffffffffffffffffffffffffffffffff928316602091820292909201810191909152918116600090815260019092526040909120541681611e1081613b49565b925050611d6c565b908352919491935090915050565b3360009081526002602052604090205473ffffffffffffffffffffffffffffffffffffffff16611eb2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330333000000000000000000000000000000000000000000000000000000060448201526064016107d8565b336000818152600860209081526040808320858452909152808220600190555183917ff2a0eb156472d1440255b0d7c1e19cc07115d1051fe605b0dce69acfec884d9c91a350565b6000611f0f8c8c8c8c8c8c8c8c8c8c8c612504565b8051906020012090509b9a5050505050505050505050565b611f2f6129a5565b73ffffffffffffffffffffffffffffffffffffffff811615801590611f6b575073ffffffffffffffffffffffffffffffffffffffff8116600114155b611fd1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475331303100000000000000000000000000000000000000000000000000000060448201526064016107d8565b73ffffffffffffffffffffffffffffffffffffffff828116600090815260016020526040902054811690821614612064576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475331303300000000000000000000000000000000000000000000000000000060448201526064016107d8565b73ffffffffffffffffffffffffffffffffffffffff8181166000818152600160209081526040808320805488871685528285208054919097167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790965592849052825490941690915591519081527faab4fa2b463f581b2b32cb3b7e3b704b9ce37cc209b5fb4d77e593ace405427691015b60405180910390a15050565b61210e6129a5565b7f4a204f620c8c5ccdca3fd54d003badd85ba500436a431f0cbda4f558c93c34c881815560405173ffffffffffffffffffffffffffffffffffffffff831681527f1151116914515bc0891ff9047a6cb32cf902546f83066499bcf8ba33d2353fa2906020016120fa565b6121806129a5565b73ffffffffffffffffffffffffffffffffffffffff8116158015906121bc575073ffffffffffffffffffffffffffffffffffffffff8116600114155b80156121de575073ffffffffffffffffffffffffffffffffffffffff81163014155b612244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303300000000000000000000000000000000000000000000000000000060448201526064016107d8565b73ffffffffffffffffffffffffffffffffffffffff81811660009081526002602052604090205416156122d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303400000000000000000000000000000000000000000000000000000060448201526064016107d8565b73ffffffffffffffffffffffffffffffffffffffff82161580159061230f575073ffffffffffffffffffffffffffffffffffffffff8216600114155b612375576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303300000000000000000000000000000000000000000000000000000060448201526064016107d8565b73ffffffffffffffffffffffffffffffffffffffff838116600090815260026020526040902054811690831614612408576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303500000000000000000000000000000000000000000000000000000060448201526064016107d8565b73ffffffffffffffffffffffffffffffffffffffff8281166000818152600260209081526040808320805487871680865283862080549289167fffffffffffffffffffffffff0000000000000000000000000000000000000000938416179055968a1685528285208054821690971790965592849052825490941690915591519081527ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf910160405180910390a160405173ffffffffffffffffffffffffffffffffffffffff821681527f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea269060200160405180910390a1505050565b606060007fbb8310d486368db6bd6f849402fdd73ad53d316b5a4b2644ad6efe0f941286d860001b8d8d8d8d60405161253e929190613ee7565b604051908190038120612564949392918e908e908e908e908e908e908e90602001613ef7565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052805160209091012090507f19000000000000000000000000000000000000000000000000000000000000007f010000000000000000000000000000000000000000000000000000000000000061263860007f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a794692184660408051602081019390935282015230606082015260800160405160208183030381529060405280519060200120905090565b6040517fff0000000000000000000000000000000000000000000000000000000000000093841660208201529290911660218301526022820152604281018290526062016040516020818303038152906040529150509b9a5050505050505050505050565b6126a56129a5565b6126cd817f6c9a6c4a39284e37ed1cf53d337577d14212a4870fb976a4366c693b939918d555565b60405173ffffffffffffffffffffffffffffffffffffffff821681527f5ac6c46c93c8d0e53714ba3b53db3e7c046da994313d7ed0d192028bc7c228b09060200161141b565b61271b6129a5565b80600160035461272b9190613e1b565b1015612793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303100000000000000000000000000000000000000000000000000000060448201526064016107d8565b73ffffffffffffffffffffffffffffffffffffffff8216158015906127cf575073ffffffffffffffffffffffffffffffffffffffff8216600114155b612835576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303300000000000000000000000000000000000000000000000000000060448201526064016107d8565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600260205260409020548116908316146128c8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303500000000000000000000000000000000000000000000000000000060448201526064016107d8565b73ffffffffffffffffffffffffffffffffffffffff828116600081815260026020526040808220805488861684529183208054929095167fffffffffffffffffffffffff0000000000000000000000000000000000000000928316179094559181528254909116909155600380549161294083613f74565b909155505060405173ffffffffffffffffffffffffffffffffffffffff831681527ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf9060200160405180910390a180600454146129a0576129a081611426565b505050565b333014612a0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330333100000000000000000000000000000000000000000000000000000060448201526064016107d8565b565b600082600003612a225750600061100a565b6000612a2e8385613c0b565b905082612a3b8583613de0565b14612a4557600080fd5b9392505050565b600080612a598385613dc8565b905083811015612a4557600080fd5b60006001836001811115612a7e57612a7e613c48565b03612a96576000808551602087018986f49050612aa6565b600080855160208701888a87f190505b95945050505050565b600081831015612abf5781612a45565b5090919050565b600082821115612ad557600080fd5b60006111708385613e1b565b60008073ffffffffffffffffffffffffffffffffffffffff831615612b065782612b08565b325b905073ffffffffffffffffffffffffffffffffffffffff8416612be757612b473a8610612b35573a612b37565b855b612b418989612a4c565b90612a10565b60405190925073ffffffffffffffffffffffffffffffffffffffff82169083156108fc029084906000818181858888f19350505050612be2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330313100000000000000000000000000000000000000000000000000000060448201526064016107d8565b612c68565b612bf585612b418989612a4c565b9150612c028482846131cf565b612c68576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330313200000000000000000000000000000000000000000000000000000060448201526064016107d8565b5095945050505050565b60045415612cdc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303000000000000000000000000000000000000000000000000000000060448201526064016107d8565b8151811115612d47576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303100000000000000000000000000000000000000000000000000000060448201526064016107d8565b6001811015612db2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303200000000000000000000000000000000000000000000000000000060448201526064016107d8565b600160005b8351811015612fe7576000848281518110612dd457612dd4613e32565b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015612e32575073ffffffffffffffffffffffffffffffffffffffff8116600114155b8015612e54575073ffffffffffffffffffffffffffffffffffffffff81163014155b8015612e8c57508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b612ef2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303300000000000000000000000000000000000000000000000000000060448201526064016107d8565b73ffffffffffffffffffffffffffffffffffffffff8181166000908152600260205260409020541615612f81576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475332303400000000000000000000000000000000000000000000000000000060448201526064016107d8565b73ffffffffffffffffffffffffffffffffffffffff928316600090815260026020526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169382169390931790925580612fdf81613b49565b915050612db7565b5073ffffffffffffffffffffffffffffffffffffffff16600090815260026020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001660011790559051600355600455565b600160008190526020527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f5473ffffffffffffffffffffffffffffffffffffffff16156130e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475331303000000000000000000000000000000000000000000000000000000060448201526064016107d8565b6001600081905260208190527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f80547fffffffffffffffffffffffff000000000000000000000000000000000000000016909117905573ffffffffffffffffffffffffffffffffffffffff821615610962576131698260008360015a612a68565b610962576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f475330303000000000000000000000000000000000000000000000000000000060448201526064016107d8565b6040805173ffffffffffffffffffffffffffffffffffffffff841660248201526044808201849052825180830390910181526064909101909152602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781528251600093929184919082896127105a03f13d801561327c5760208114613284576000935061328f565b81935061328f565b600051158215171593505b5050509392505050565b73ffffffffffffffffffffffffffffffffffffffff811681146132bb57600080fd5b50565b80356132c981613299565b919050565b600080604083850312156132e157600080fd5b82356132ec81613299565b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261333a57600080fd5b813567ffffffffffffffff80821115613355576133556132fa565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561339b5761339b6132fa565b816040528381528660208588010111156133b457600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080608085870312156133ea57600080fd5b84359350602085013567ffffffffffffffff8082111561340957600080fd5b61341588838901613329565b9450604087013591508082111561342b57600080fd5b5061343887828801613329565b949793965093946060013593505050565b60006020828403121561345b57600080fd5b8135612a4581613299565b8035600281106132c957600080fd5b6000806000806080858703121561348b57600080fd5b843561349681613299565b935060208501359250604085013567ffffffffffffffff8111156134b957600080fd5b6134c587828801613329565b9250506134d460608601613466565b905092959194509250565b6000815180845260005b81811015613505576020818501810151868301820152016134e9565b81811115613517576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b821515815260406020820152600061117060408301846134df565b6000806040838503121561357857600080fd5b50508035926020909101359150565b602081526000612a4560208301846134df565b6000602082840312156135ac57600080fd5b5035919050565b60008083601f8401126135c557600080fd5b50813567ffffffffffffffff8111156135dd57600080fd5b6020830191508360208285010111156135f557600080fd5b9250929050565b60008060008060008060008060008060006101408c8e03121561361e57600080fd5b6136278c6132be565b9a5060208c0135995067ffffffffffffffff8060408e0135111561364a57600080fd5b61365a8e60408f01358f016135b3565b909a50985061366b60608e01613466565b975060808d0135965060a08d0135955060c08d0135945061368e60e08e016132be565b935061369d6101008e016132be565b9250806101208e013511156136b157600080fd5b506136c38d6101208e01358e01613329565b90509295989b509295989b9093969950565b6000806000606084860312156136ea57600080fd5b83359250602084013567ffffffffffffffff8082111561370957600080fd5b61371587838801613329565b9350604086013591508082111561372b57600080fd5b5061373886828701613329565b9150509250925092565b600081518084526020808501945080840160005b8381101561378857815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101613756565b509495945050505050565b602081526000612a456020830184613742565b600080604083850312156137b957600080fd5b82356137c481613299565b9150602083013567ffffffffffffffff8111156137e057600080fd5b6137ec85828601613329565b9150509250929050565b6000806000806000806000806000806101008b8d03121561381657600080fd5b8a3567ffffffffffffffff8082111561382e57600080fd5b818d0191508d601f83011261384257600080fd5b81358181111561385157600080fd5b8e60208260051b850101111561386657600080fd5b60208381019d50909b508d0135995061388160408e016132be565b985060608d013591508082111561389757600080fd5b506138a48d828e016135b3565b90975095506138b7905060808c016132be565b93506138c560a08c016132be565b925060c08b013591506138da60e08c016132be565b90509295989b9194979a5092959850565b60008060008060006080868803121561390357600080fd5b853561390e81613299565b945060208601359350604086013567ffffffffffffffff81111561393157600080fd5b61393d888289016135b3565b9094509250613950905060608701613466565b90509295509295909350565b60408152600061396f6040830185613742565b905073ffffffffffffffffffffffffffffffffffffffff831660208301529392505050565b60008060008060008060008060008060006101408c8e0312156139b657600080fd5b8b356139c181613299565b9a5060208c0135995060408c013567ffffffffffffffff8111156139e457600080fd5b6139f08e828f016135b3565b909a509850613a03905060608d01613466565b965060808c0135955060a08c0135945060c08c0135935060e08c0135613a2881613299565b92506101008c0135613a3981613299565b809250506101208c013590509295989b509295989b9093969950565b60008060408385031215613a6857600080fd5b8235613a7381613299565b91506020830135613a8381613299565b809150509250929050565b600080600060608486031215613aa357600080fd5b8335613aae81613299565b92506020840135613abe81613299565b91506040840135613ace81613299565b809150509250925092565b600080600060608486031215613aee57600080fd5b8335613af981613299565b92506020840135613b0981613299565b929592945050506040919091013590565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613b7a57613b7a613b1a565b5060010190565b604081526000613b9460408301856134df565b8281036020840152612aa681856134df565b600060208284031215613bb857600080fd5b81517fffffffff0000000000000000000000000000000000000000000000000000000081168114612a4557600080fd5b600060ff821660ff841680821015613c0257613c02613b1a565b90039392505050565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613c4357613c43613b1a565b500290565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60028110613cae577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b600061016073ffffffffffffffffffffffffffffffffffffffff8f1683528d60208401528060408401528b81840152506101808b8d828501376000818d850101527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8d01168301613d28606085018d613c77565b8a60808501528960a08501528860c0850152613d5c60e085018973ffffffffffffffffffffffffffffffffffffffff169052565b73ffffffffffffffffffffffffffffffffffffffff87166101008501528184820301610120850152613d90828201876134df565b92505050613db761014083018473ffffffffffffffffffffffffffffffffffffffff169052565b9d9c50505050505050505050505050565b60008219821115613ddb57613ddb613b1a565b500190565b600082613e16577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b600082821015613e2d57613e2d613b1a565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6080808252810185905260008660a08301825b88811015613eb1578235613e8781613299565b73ffffffffffffffffffffffffffffffffffffffff16825260209283019290910190600101613e74565b506020840196909652505073ffffffffffffffffffffffffffffffffffffffff9283166040820152911660609091015292915050565b8183823760009101908152919050565b6000610160820190508c825273ffffffffffffffffffffffffffffffffffffffff808d1660208401528b60408401528a6060840152613f39608084018b613c77565b60a083019890985260c082019690965260e0810194909452918516610100840152909316610120820152610140019190915295945050505050565b600081613f8357613f83613b1a565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019056fea164736f6c634300080f000a","sourceMap":"722:19528:78:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;417:35:85;;442:9;160:25:416;;430:10:85;;417:35;;148:2:416;133:18;417:35:85;;;;;;;722:19528:78;;;;;;;;;;;-1:-1:-1;469:66:80;1467:11;;;1491:63;;1528:12;1491:63;1586:14;1583:1;1580;1567:34;1823:8;1819:2;1815:17;1799:14;1792:41;1981:1;1978;1973:2;1957:14;1953:23;1950:1;1947;1938:7;1931:5;1926:57;1911:72;;2017:16;2014:1;2011;1996:38;2057:7;2047:78;;2094:16;2091:1;2084:27;2047:78;;2148:16;2145:1;2138:27;2305:625:83;;;;;;;;;;-1:-1:-1;2305:625:83;;;;;:::i;:::-;;:::i;:::-;;11349:3812:78;;;;;;;;;;-1:-1:-1;11349:3812:78;;;;;:::i;:::-;;:::i;4861:151:82:-;;;;;;;;;;-1:-1:-1;4861:151:82;;;;;:::i;:::-;;:::i;:::-;;;2883:14:416;;2876:22;2858:41;;2846:2;2831:18;4861:151:82;;;;;;;;6048:138:83;;;;;;;;;;-1:-1:-1;6048:138:83;;;;;:::i;:::-;;:::i;17041:211:78:-;;;;;;;;;;-1:-1:-1;17208:9:78;17041:211;;;160:25:416;;;148:2;133:18;17041:211:78;14:177:416;2868:586:82;;;;;;;;;;-1:-1:-1;2868:586:82;;;;;:::i;:::-;;:::i;3805:959::-;;;;;;;;;;-1:-1:-1;3805:959:82;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;643:464:90:-;;;;;;;;;;-1:-1:-1;643:464:90;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2149:49:78:-;;;;;;;;;;-1:-1:-1;2149:49:78;;;;;:::i;:::-;;;;;;;;;;;;;;1363:426:82;;;;;;;;;;-1:-1:-1;1363:426:82;;;;;:::i;:::-;;:::i;5589:360:83:-;;;;;;;;;;-1:-1:-1;5589:360:83;;;;;:::i;:::-;;:::i;5531:3628:78:-;;;;;;:::i;:::-;;:::i;2309:69::-;;;;;;;;;;-1:-1:-1;2309:69:78;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;10441:383;;;;;;;;;;-1:-1:-1;10441:383:78;;;;;:::i;:::-;;:::i;6268:437:83:-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;1978:20:78:-;;;;;;;;;;;;;;;;1740:486:90;;;;;;;;;;-1:-1:-1;1740:486:90;;;;;:::i;:::-;;:::i;3353:1151:78:-;;;;;;;;;;-1:-1:-1;3353:1151:78;;;;;:::i;:::-;;:::i;15970:533::-;;;;;;;;;;-1:-1:-1;15970:533:78;;;;;:::i;:::-;;:::i;5257:775:82:-;;;;;;;;;;-1:-1:-1;5257:775:82;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;16750:228:78:-;;;;;;;;;;-1:-1:-1;16750:228:78;;;;;:::i;:::-;;:::i;19770:478::-;;;;;;;;;;-1:-1:-1;19770:478:78;;;;;:::i;:::-;;:::i;2109:423:82:-;;;;;;;;;;-1:-1:-1;2109:423:82;;;;;:::i;:::-;;:::i;1150:254:81:-;;;;;;;;;;-1:-1:-1;1150:254:81;;;;;:::i;:::-;;:::i;4507:826:83:-;;;;;;;;;;-1:-1:-1;4507:826:83;;;;;:::i;:::-;;:::i;5955:87::-;;;;;;;;;;-1:-1:-1;6026:9:83;;5955:87;;18194:890:78;;;;;;;;;;-1:-1:-1;18194:890:78;;;;;:::i;:::-;;:::i;1052:161:80:-;;;;;;;;;;-1:-1:-1;1052:161:80;;;;;:::i;:::-;;:::i;17258:149:78:-;;;;;;;;;;;;17306:7;1208:66;17208:9;17342:57;;;;;;30386:25:416;;;;30427:18;;30420:34;17394:4:78;30470:18:416;;;30463:83;30359:18;;17342:57:78;;;;;;;;;;;;17332:68;;;;;;17325:75;;17258:149;;3371:727:83;;;;;;;;;;-1:-1:-1;3371:727:83;;;;;:::i;:::-;;:::i;1011:40:78:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2305:625:83;440:17:87;:15;:17::i;:::-;2481:19:83::1;::::0;::::1;::::0;;::::1;::::0;:47:::1;;-1:-1:-1::0;2504:24:83::1;::::0;::::1;520:3;2504:24;;2481:47;:73;;;;-1:-1:-1::0;2532:22:83::1;::::0;::::1;2549:4;2532:22;;2481:73;2473:91;;;::::0;::::1;::::0;;14963:2:416;2473:91:83::1;::::0;::::1;14945:21:416::0;15002:1;14982:18;;;14975:29;15040:7;15020:18;;;15013:35;15065:18;;2473:91:83::1;;;;;;;;;2622:27;:13:::0;;::::1;2647:1;2622:13:::0;;;:6:::1;:13;::::0;;;;;::::1;:27:::0;2614:45:::1;;;::::0;::::1;::::0;;15296:2:416;2614:45:83::1;::::0;::::1;15278:21:416::0;15335:1;15315:18;;;15308:29;15373:7;15353:18;;;15346:35;15398:18;;2614:45:83::1;15094:328:416::0;2614:45:83::1;2685:6;:23;::::0;;;;::::1;2669:13:::0;;::::1;2685:23;2669:13:::0;;;2685:23;2669:13;;:39;;2685:23;;;::::1;2669:39:::0;;;::::1;;::::0;;;-1:-1:-1;2718:23:83;;:31;;;;::::1;;::::0;;;2759:10:::1;:12:::0;;;::::1;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;;2786:17:83::1;::::0;15992:42:416;15980:55;;15962:74;;2786:17:83::1;::::0;15950:2:416;15935:18;2786:17:83::1;;;;;;;2884:10;2871:9;;:23;2867:56;;2896:27;2912:10;2896:15;:27::i;:::-;2305:625:::0;;:::o;11349:3812:78:-;11621:26;:18;11644:2;11621:22;:26::i;:::-;11600:10;:17;:47;;11592:65;;;;;;;16249:2:416;11592:65:78;;;16231:21:416;16288:1;16268:18;;;16261:29;16326:7;16306:18;;;16299:35;16351:18;;11592:65:78;16047:328:416;11592:65:78;11719:17;11759:20;11789:7;11806:9;11825;11844;11863:3292;11879:18;11875:1;:22;11863:3292;;;1073:4:88;1069:14;;;1107:40;;1141:4;1107:40;;1101:47;1206:4;1172:40;;1166:47;1507:40;;;;1501:47;1550:4;1497:58;;-1:-1:-1;1101:47:88;;-1:-1:-1;1166:47:88;-1:-1:-1;11982:1:78;11977:6;;;11973:3005;;12202:1;;-1:-1:-1;12202:1:78;;12607:26;:18;12630:2;12607:22;:26::i;:::-;12593:40;;;12585:58;;;;;;;16582:2:416;12585:58:78;;;16564:21:416;16621:1;16601:18;;;16594:29;16659:7;16639:18;;;16632:35;16684:18;;12585:58:78;16380:328:416;12585:58:78;12805:17;;12783:18;12791:1;12798:2;12783:14;:18::i;:::-;:39;;12775:57;;;;;;;16915:2:416;12775:57:78;;;16897:21:416;16954:1;16934:18;;;16927:29;16992:7;16972:18;;;16965:35;17017:18;;12775:57:78;16713:328:416;12775:57:78;13171:4;13151:18;;;13147:29;;13141:36;13268:17;;13141:36;;13220:44;;13141:36;;13220:18;;13151;;13220:14;:18::i;:::-;:22;;:44::i;:::-;:65;;13212:83;;;;;;;17248:2:416;13212:83:78;;;17230:21:416;17287:1;17267:18;;;17260:29;17325:7;17305:18;;;17298:35;17350:18;;13212:83:78;17046:328:416;13212:83:78;13724:75;;13803:19;13724:75;;;13656:18;;;13676:4;13652:29;;13724:50;;;;223:10:98;;13724:75:78;;13775:4;;13652:29;;13724:75;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:98;;;13716:116;;;;;;;18304:2:416;13716:116:78;;;18286:21:416;18343:1;18323:18;;;18316:29;18381:7;18361:18;;;18354:35;18406:18;;13716:116:78;18102:328:416;13716:116:78;11985:1862;;11973:3005;;;13857:1;:6;;13862:1;13857:6;13853:1125;;14074:1;;-1:-1:-1;14074:1:78;;14249:10;:26;;;;;:73;;-1:-1:-1;14279:28:78;;;;;;;:14;:28;;;;;;;;:38;;;;;;;;;:43;;14249:73;14241:91;;;;;;;18637:2:416;14241:91:78;;;18619:21:416;18676:1;18656:18;;;18649:29;18714:7;18694:18;;;18687:35;18739:18;;14241:91:78;18435:328:416;14241:91:78;13853:1125;;;14361:2;14357:1;:6;;;14353:625;;;14654:62;;19010:66:416;14654:62:78;;;18998:79:416;19093:12;;;19086:28;;;14634:97:78;;19130:12:416;;14654:62:78;;;;;;;;;;;;14644:73;;;;;;14723:1;14719;:5;;;;:::i;:::-;14634:97;;;;;;;;;;;;19580:25:416;;;;19653:4;19641:17;;;19621:18;;;19614:45;19675:18;;;19668:34;;;19718:18;;;19711:34;;;19552:19;;14634:97:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14619:112;;14353:625;;;14935:28;;;;;;;;;;;;19580:25:416;;;19653:4;19641:17;;19621:18;;;19614:45;;;;19675:18;;;19668:34;;;19718:18;;;19711:34;;;14935:28:78;;19552:19:416;;14935:28:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14920:43;;14353:625;15014:9;14999:24;;:12;:24;;;:62;;;;-1:-1:-1;15027:34:78;:20;;;15059:1;15027:20;;;:6;:20;;;;;;;:34;;14999:62;:97;;;;-1:-1:-1;15065:31:78;;;520:3:83;15065:31:78;;14999:97;14991:115;;;;;;;19958:2:416;14991:115:78;;;19940:21:416;19997:1;19977:18;;;19970:29;20035:7;20015:18;;;20008:35;20060:18;;14991:115:78;19756:328:416;14991:115:78;15132:12;15120:24;;11899:3;;;;;:::i;:::-;;;;11863:3292;;;11515:3646;;;;;;11349:3812;;;;:::o;4861:151:82:-;4923:4;692:3;4946:26;;;;;;;:59;;-1:-1:-1;4976:29:82;:15;;;5003:1;4976:15;;;:7;:15;;;;;;;:29;;4946:59;4939:66;4861:151;-1:-1:-1;;4861:151:82:o;6048:138:83:-;6101:4;6124:24;;;520:3;6124:24;;;;:55;;-1:-1:-1;;6152:27:83;:13;;;6177:1;6152:13;;;:6;:13;;;;;;;:27;;;6048:138::o;2868:586:82:-;3037:12;3118:10;692:3;3118:30;;;;:67;;-1:-1:-1;3160:10:82;3183:1;3152:19;;;:7;:19;;;;;;:33;:19;:33;;3118:67;3110:85;;;;;;;20291:2:416;3110:85:82;;;20273:21:416;20330:1;20310:18;;;20303:29;20368:7;20348:18;;;20341:35;20393:18;;3110:85:82;20089:328:416;3110:85:82;3277:46;3285:2;3289:5;3296:4;3302:9;3313;3277:7;:46::i;:::-;3267:56;;3337:7;3333:114;;;3351:38;;3378:10;;3351:38;;;;;3333:114;;;3409:38;;3436:10;;3409:38;;;;;3333:114;2868:586;;;;;;:::o;3805:959::-;3976:12;3990:23;4035:53;4061:2;4065:5;4072:4;4078:9;4035:25;:53::i;:::-;4025:63;;4235:4;4229:11;4477:4;4459:16;4455:27;4450:3;4446:37;4440:4;4433:51;4539:16;4534:3;4527:29;4633:16;4630:1;4623:4;4618:3;4614:14;4599:51;4745:3;4731:17;;;3805:959;;;;;;;:::o;643:464:90:-;718:12;742:19;774:11;:6;783:2;774:11;:::i;:::-;764:22;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;764:22:90;;742:44;;801:13;796:282;828:6;820:5;:14;796:282;;;964:18;;;958:25;1041:4;1030:16;;;1007:40;;;1000:54;976:5;836:7;976:5;836:7;:::i;:::-;;;;796:282;;;-1:-1:-1;1094:6:90;643:464;-1:-1:-1;;;643:464:90:o;1363:426:82:-;440:17:87;:15;:17::i;:::-;1491:20:82::1;::::0;::::1;::::0;;::::1;::::0;:50:::1;;-1:-1:-1::0;1515:26:82::1;::::0;::::1;692:3;1515:26;;1491:50;1483:68;;;::::0;::::1;::::0;;20857:2:416;1483:68:82::1;::::0;::::1;20839:21:416::0;20896:1;20876:18;;;20869:29;20934:7;20914:18;;;20907:35;20959:18;;1483:68:82::1;20655:328:416::0;1483:68:82::1;1610:29;:15:::0;;::::1;1637:1;1610:15:::0;;;:7:::1;:15;::::0;;;;;::::1;:29:::0;1602:47:::1;;;::::0;::::1;::::0;;21190:2:416;1602:47:82::1;::::0;::::1;21172:21:416::0;21229:1;21209:18;;;21202:29;21267:7;21247:18;;;21240:35;21292:18;;1602:47:82::1;20988:328:416::0;1602:47:82::1;1677:7;:25;::::0;;;;;;::::1;1659:15:::0;;::::1;1677:25;1659:15:::0;;;1677:25;1659:15;;;:43;;1677:25;;;::::1;1659:43:::0;;;::::1;;::::0;;;1712:25;;;;:34;;::::1;::::0;::::1;::::0;;;1761:21;15962:74:416;;;1761:21:82::1;::::0;15935:18:416;1761:21:82::1;;;;;;;;1363:426:::0;:::o;5589:360:83:-;440:17:87;:15;:17::i;:::-;5753:10:83::1;;5739;:24;;5731:42;;;::::0;::::1;::::0;;21523:2:416;5731:42:83::1;::::0;::::1;21505:21:416::0;21562:1;21542:18;;;21535:29;21600:7;21580:18;;;21573:35;21625:18;;5731:42:83::1;21321:328:416::0;5731:42:83::1;5857:1;5843:10;:15;;5835:33;;;::::0;::::1;::::0;;21856:2:416;5835:33:83::1;::::0;::::1;21838:21:416::0;21895:1;21875:18;;;21868:29;21933:7;21913:18;;;21906:35;21958:18;;5835:33:83::1;21654:328:416::0;5835:33:83::1;5878:9;:22:::0;;;5915:27:::1;::::0;160:25:416;;;5915:27:83::1;::::0;148:2:416;133:18;5915:27:83::1;14:177:416::0;5531:3628:78;5877:12;5901:14;6028:23;6070:444;6153:2;6177:5;6204:4;;6230:9;6261;6328:7;6357:8;6387;6417:14;6491:5;;6070:21;:444::i;:::-;6583:5;:7;;6028:486;;-1:-1:-1;6583:5:78;:7;;;:::i;:::-;;;;-1:-1:-1;;6613:21:78;;;;;;;-1:-1:-1;6648:47:78;6613:21;6623:10;6684;6648:15;:47::i;:::-;6014:692;6715:13;6731:10;915:66:81;1609:11;;1410:226;6731:10:78;6715:26;-1:-1:-1;6769:19:78;;;;6765:547;;6814:5;6808:29;;;6899:2;6923:5;6950:4;;6976:9;7007;7074:7;7103:8;7133;7163:14;7237:10;7269;6808:489;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6765:547;7626:45;7654:16;:9;7666:4;7654:16;:::i;:::-;7646:2;7628:14;:9;7640:2;7628:14;:::i;:::-;7627:21;;;;:::i;:::-;7626:27;;:45::i;:::-;:51;;7674:3;7626:51;:::i;:::-;7613:9;:64;;7605:82;;;;;;;24525:2:416;7605:82:78;;;24507:21:416;24564:1;24544:18;;;24537:29;24602:7;24582:18;;;24575:35;24627:18;;7605:82:78;24323:328:416;7605:82:78;7800:15;7818:9;7800:27;;8106:83;8114:2;8118:5;8125:4;;8106:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8131:9;8142:8;8154:1;8142:13;:46;;8179:9;8106:7;:83::i;8142:46::-;8171:4;8159:9;:16;;;;:::i;:::-;8106:7;:83::i;:::-;8096:93;;8213:22;8225:9;8213:7;;:11;:22::i;:::-;8203:32;;8519:7;:25;;;-1:-1:-1;8530:14:78;;;8519:25;:42;;;-1:-1:-1;8548:13:78;;;8519:42;8511:60;;;;;;;24988:2:416;8511:60:78;;;24970:21:416;25027:1;25007:18;;;25000:29;25065:7;25045:18;;;25038:35;25090:18;;8511:60:78;24786:328:416;8511:60:78;8720:15;8757:12;;8753:128;;8799:67;8813:7;8822;8831:8;8841;8851:14;8799:13;:67::i;:::-;8789:77;;8753:128;8898:7;8894:108;;;8912:33;;;25293:25:416;;;25349:2;25334:18;;25327:34;;;8912:33:78;;25266:18:416;8912:33:78;;;;;;;8894:108;;;8969:33;;;25293:25:416;;;25349:2;25334:18;;25327:34;;;8969:33:78;;25266:18:416;8969:33:78;;;;;;;8894:108;-1:-1:-1;;9040:19:78;;;;9036:107;;9079:49;;;;;;;;25540:25:416;;;25608:14;;25601:22;25581:18;;;25574:50;9079:32:78;;;;;;25513:18:416;;9079:49:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9036:107;5891:3268;;5531:3628;;;;;;;;;;;;;:::o;10441:383::-;10659:9;;10727:14;10719:32;;;;;;;25837:2:416;10719:32:78;;;25819:21:416;25876:1;25856:18;;;25849:29;25914:7;25894:18;;;25887:35;25939:18;;10719:32:78;25635:328:416;10719:32:78;10761:56;10778:8;10788:4;10794:10;10806;10761:16;:56::i;:::-;10570:254;10441:383;;;:::o;6268:437:83:-;6310:16;6338:22;6377:10;;6363:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6363:25:83;-1:-1:-1;520:3:83;6432:13;6482:23;;;:6;:23;;;;6338:50;;-1:-1:-1;6432:13:83;6482:23;;6515:162;6522:31;;;520:3;6522:31;6515:162;;6584:12;6569:5;6575;6569:12;;;;;;;;:::i;:::-;:27;;;;:12;;;;;;;;;;:27;;;;6625:20;;;;;;;:6;:20;;;;;;;;;6659:7;;;;:::i;:::-;;;;6515:162;;;-1:-1:-1;6693:5:83;;6268:437;-1:-1:-1;;6268:437:83:o;1740:486:90:-;2025:1;2022;2004:15;1998:22;1991:4;1974:15;1970:26;1954:14;1947:5;1934:93;2054:7;2048:4;2041:21;;2088:16;2082:4;2075:30;2142:16;2139:1;2133:4;2118:41;2204:4;2186:16;2182:27;2179:1;2172:38;3353:1151:78;3752:32;3764:7;;3752:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3773:10:78;;-1:-1:-1;3752:11:78;;-1:-1:-1;;3752:32:78:i;:::-;3798:29;;;;3794:78;;3829:43;3856:15;469:66:80;747:21;542:242;3829:43:78;4007:22;4020:2;4024:4;;4007:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4007:12:78;;-1:-1:-1;;;4007:22:78:i;:::-;4044:11;;4040:380;;4350:59;4364:7;4373:1;4376;4379:12;4393:15;4350:13;:59::i;:::-;;4040:380;4444:10;4434:63;;;4456:7;;4465:10;4477:2;4481:15;4434:63;;;;;;;;;;:::i;:::-;;;;;;;;3353:1151;;;;;;;;;;:::o;15970:533::-;16123:7;16142:16;16161:9;16142:28;;16275:46;16283:2;16287:5;16294:4;;16275:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16300:9:78;;-1:-1:-1;;;16311:9:78;16275:7;:46::i;:::-;16267:55;;;;;;16332:19;16365:9;16354:20;;:8;:20;:::i;:::-;16332:42;;16482:11;16465:29;;;;;;27322:19:416;;27366:2;27357:12;;27193:182;16465:29:78;;;;;;;;;;;;;;;16451:45;;;;;;;;:::i;5257:775:82:-;5342:22;5366:12;5453:8;5439:23;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5439:23:82;-1:-1:-1;5563:14:82;;;;5506:19;5563:14;;;:7;:14;;;;;;5431:31;;-1:-1:-1;5506:19:82;5563:14;5587:239;5594:29;;;;;;;:66;;-1:-1:-1;5627:33:82;;;692:3;5627:33;;5594:66;:92;;;;;5678:8;5664:11;:22;5594:92;5587:239;;;5723:13;5702:5;5708:11;5702:18;;;;;;;;:::i;:::-;:34;;;;:18;;;;;;;;;;:34;;;;5766:22;;;;;;;:7;:22;;;;;;;;;5802:13;;;;:::i;:::-;;;;5587:239;;;5990:26;;;5997:5;;5842:13;;-1:-1:-1;5257:775:82;;-1:-1:-1;;5257:775:82:o;16750:228:78:-;16828:10;16851:1;16821:18;;;:6;:18;;;;;;:32;:18;16813:50;;;;;;;27582:2:416;16813:50:78;;;27564:21:416;27621:1;27601:18;;;27594:29;27659:7;27639:18;;;27632:35;27684:18;;16813:50:78;27380:328:416;16813:50:78;16888:10;16873:26;;;;:14;:26;;;;;;;;:41;;;;;;;;;16917:1;16873:45;;16933:38;16900:13;;16933:38;;;16750:228;:::o;19770:478::-;20091:7;20127:113;20149:2;20153:5;20160:4;;20166:9;20177;20188:7;20197:8;20207;20217:14;20233:6;20127:21;:113::i;:::-;20117:124;;;;;;20110:131;;19770:478;;;;;;;;;;;;;:::o;2109:423:82:-;440:17:87;:15;:17::i;:::-;2286:20:82::1;::::0;::::1;::::0;;::::1;::::0;:50:::1;;-1:-1:-1::0;2310:26:82::1;::::0;::::1;692:3;2310:26;;2286:50;2278:68;;;::::0;::::1;::::0;;20857:2:416;2278:68:82::1;::::0;::::1;20839:21:416::0;20896:1;20876:18;;;20869:29;20934:7;20914:18;;;20907:35;20959:18;;2278:68:82::1;20655:328:416::0;2278:68:82::1;2364:29;:19:::0;;::::1;;::::0;;;:7:::1;:19;::::0;;;;;;::::1;:29:::0;;::::1;;2356:47;;;::::0;::::1;::::0;;27915:2:416;2356:47:82::1;::::0;::::1;27897:21:416::0;27954:1;27934:18;;;27927:29;27992:7;27972:18;;;27965:35;28017:18;;2356:47:82::1;27713:328:416::0;2356:47:82::1;2435:15;::::0;;::::1;;::::0;;;:7:::1;:15;::::0;;;;;;;;;2413:19;;::::1;::::0;;;;;:37;;2435:15;;;::::1;2413:37:::0;;;::::1;;::::0;;;2460:15;;;;:28;;;;::::1;::::0;;;2503:22;;15962:74:416;;;2503:22:82::1;::::0;15935:18:416;2503:22:82::1;;;;;;;;2109:423:::0;;:::o;1150:254:81:-;440:17:87;:15;:17::i;:::-;915:66:81::1;1335:19:::0;;;1378::::1;::::0;15992:42:416;15980:55;;15962:74;;1378:19:81::1;::::0;15950:2:416;15935:18;1378:19:81::1;15816:226:416::0;4507:826:83;440:17:87;:15;:17::i;:::-;4721:22:83::1;::::0;::::1;::::0;;::::1;::::0;:53:::1;;-1:-1:-1::0;4747:27:83::1;::::0;::::1;520:3;4747:27;;4721:53;:82;;;;-1:-1:-1::0;4778:25:83::1;::::0;::::1;4798:4;4778:25;;4721:82;4713:100;;;::::0;::::1;::::0;;14963:2:416;4713:100:83::1;::::0;::::1;14945:21:416::0;15002:1;14982:18;;;14975:29;15040:7;15020:18;;;15013:35;15065:18;;4713:100:83::1;14761:328:416::0;4713:100:83::1;4871:30;:16:::0;;::::1;4899:1;4871:16:::0;;;:6:::1;:16;::::0;;;;;::::1;:30:::0;4863:48:::1;;;::::0;::::1;::::0;;15296:2:416;4863:48:83::1;::::0;::::1;15278:21:416::0;15335:1;15315:18;;;15308:29;15373:7;15353:18;;;15346:35;15398:18;;4863:48:83::1;15094:328:416::0;4863:48:83::1;5012:22;::::0;::::1;::::0;;::::1;::::0;:53:::1;;-1:-1:-1::0;5038:27:83::1;::::0;::::1;520:3;5038:27;;5012:53;5004:71;;;::::0;::::1;::::0;;14963:2:416;5004:71:83::1;::::0;::::1;14945:21:416::0;15002:1;14982:18;;;14975:29;15040:7;15020:18;;;15013:35;15065:18;;5004:71:83::1;14761:328:416::0;5004:71:83::1;5093:29;:17:::0;;::::1;;::::0;;;:6:::1;:17;::::0;;;;;;::::1;:29:::0;;::::1;;5085:47;;;::::0;::::1;::::0;;28248:2:416;5085:47:83::1;::::0;::::1;28230:21:416::0;28287:1;28267:18;;;28260:29;28325:7;28305:18;;;28298:35;28350:18;;5085:47:83::1;28046:328:416::0;5085:47:83::1;5161:16;::::0;;::::1;;::::0;;;:6:::1;:16;::::0;;;;;;;;;5142;;::::1;::::0;;;;;;:35;;5161:16;;::::1;5142:35:::0;;;::::1;;::::0;;5187:17;;::::1;::::0;;;;;:28;;;::::1;::::0;;::::1;::::0;;;5225:16;;;;:29;;;;::::1;::::0;;;5269:22;;15962:74:416;;;5269:22:83::1;::::0;15935:18:416;5269:22:83::1;;;;;;;5306:20;::::0;15992:42:416;15980:55;;15962:74;;5306:20:83::1;::::0;15950:2:416;15935:18;5306:20:83::1;;;;;;;4507:826:::0;;;:::o;18194:890:78:-;18518:12;18542:18;1531:66;18634:16;;18672:2;18696:5;18733:4;;18723:15;;;;;;;:::i;:::-;;;;;;;;;18602:369;;;;;18760:9;;18791;;18822:7;;18851:8;;18881;;18911:14;;18947:6;;18602:369;;;:::i;:::-;;;;;;;;;;;;;;18575:410;;18602:369;18575:410;;;;;-1:-1:-1;19019:12:78;19033;19047:17;17306:7;1208:66;17208:9;17342:57;;;;;;30386:25:416;;;;30427:18;;30420:34;17394:4:78;30470:18:416;;;30463:83;30359:18;;17342:57:78;;;;;;;;;;;;17332:68;;;;;;17325:75;;17258:149;;19047:17;19002:75;;29896:66:416;29983:15;;;19002:75:78;;;29971:28:416;30028:15;;;;30015:11;;;30008:36;30060:11;;;30053:27;30096:12;;;30089:28;;;30133:12;;19002:75:78;;;;;;;;;;;;18995:82;;;18194:890;;;;;;;;;;;;;:::o;1052:161:80:-;440:17:87;:15;:17::i;:::-;1125:35:80::1;1152:7;469:66:::0;747:21;542:242;1125:35:::1;1175:31;::::0;15992:42:416;15980:55;;15962:74;;1175:31:80::1;::::0;15950:2:416;15935:18;1175:31:80::1;15816:226:416::0;3371:727:83;440:17:87;:15;:17::i;:::-;3607:10:83::1;3602:1;3589:10;;:14;;;;:::i;:::-;:28;;3581:46;;;::::0;::::1;::::0;;21523:2:416;3581:46:83::1;::::0;::::1;21505:21:416::0;21562:1;21542:18;;;21535:29;21600:7;21580:18;;;21573:35;21625:18;;3581:46:83::1;21321:328:416::0;3581:46:83::1;3725:19;::::0;::::1;::::0;;::::1;::::0;:47:::1;;-1:-1:-1::0;3748:24:83::1;::::0;::::1;520:3;3748:24;;3725:47;3717:65;;;::::0;::::1;::::0;;14963:2:416;3717:65:83::1;::::0;::::1;14945:21:416::0;15002:1;14982:18;;;14975:29;15040:7;15020:18;;;15013:35;15065:18;;3717:65:83::1;14761:328:416::0;3717:65:83::1;3800:26;:17:::0;;::::1;;::::0;;;:6:::1;:17;::::0;;;;;;::::1;:26:::0;;::::1;;3792:44;;;::::0;::::1;::::0;;28248:2:416;3792:44:83::1;::::0;::::1;28230:21:416::0;28287:1;28267:18;;;28260:29;28325:7;28305:18;;;28298:35;28350:18;;3792:44:83::1;28046:328:416::0;3792:44:83::1;3866:13;::::0;;::::1;;::::0;;;:6:::1;:13;::::0;;;;;;;3846:17;;::::1;::::0;;;;;:33;;3866:13;;;::::1;3846:33:::0;;;::::1;;::::0;;;3889:13;;;:26;;;;::::1;::::0;;;3925:10:::1;:12:::0;;;::::1;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;;3952:19:83::1;::::0;15992:42:416;15980:55;;15962:74;;3952:19:83::1;::::0;15950:2:416;15935:18;3952:19:83::1;;;;;;;4052:10;4039:9;;:23;4035:56;;4064:27;4080:10;4064:15;:27::i;:::-;3371:727:::0;;;:::o;231:102:87:-;289:10;311:4;289:27;281:45;;;;;;;30960:2:416;281:45:87;;;30942:21:416;30999:1;30979:18;;;30972:29;31037:7;31017:18;;;31010:35;31062:18;;281:45:87;30758:328:416;281:45:87;231:102::o;392:421:93:-;450:7;690:1;695;690:6;686:45;;-1:-1:-1;719:1:93;712:8;;686:45;741:9;753:5;757:1;753;:5;:::i;:::-;741:17;-1:-1:-1;785:1:93;776:5;780:1;741:17;776:5;:::i;:::-;:10;768:19;;;;;;805:1;392:421;-1:-1:-1;;;392:421:93:o;1154:145::-;1212:7;;1243:5;1247:1;1243;:5;:::i;:::-;1231:17;;1271:1;1266;:6;;1258:15;;;;;242:639:79;410:12;451:27;438:9;:40;;;;;;;;:::i;:::-;;434:441;;649:1;646;639:4;633:11;626:4;620;616:15;612:2;605:5;592:59;581:70;;434:441;;;849:1;846;839:4;833:11;826:4;820;816:15;809:5;805:2;798:5;793:58;782:69;;434:441;242:639;;;;;;;:::o;1369:105:93:-;1427:7;1458:1;1453;:6;;:14;;1466:1;1453:14;;;-1:-1:-1;1462:1:93;;1446:21;-1:-1:-1;1369:105:93:o;936:145::-;994:7;1026:1;1021;:6;;1013:15;;;;;;1038:9;1050:5;1054:1;1050;:5;:::i;9165:821:78:-;9353:15;;9460:28;;;;:66;;9512:14;9460:66;;;9499:9;9460:66;9433:93;-1:-1:-1;9540:22:78;;;9536:444;;9693:73;9729:11;9718:8;:22;:47;;9754:11;9718:47;;;9743:8;9718:47;9693:20;:7;9705;9693:11;:20::i;:::-;:24;;:73::i;:::-;9788:22;;9683:83;;-1:-1:-1;9788:13:78;;;;:22;;;;;9683:83;;9788:22;;;;9683:83;9788:13;:22;;;;;;;9780:40;;;;;;;31293:2:416;9780:40:78;;;31275:21:416;31332:1;31312:18;;;31305:29;31370:7;31350:18;;;31343:35;31395:18;;9780:40:78;31091:328:416;9780:40:78;9536:444;;;9861:34;9886:8;9861:20;:7;9873;9861:11;:20::i;:34::-;9851:44;;9917:42;9931:8;9941;9951:7;9917:13;:42::i;:::-;9909:60;;;;;;;31626:2:416;9909:60:78;;;31608:21:416;31665:1;31645:18;;;31638:29;31703:7;31683:18;;;31676:35;31728:18;;9909:60:78;31424:328:416;9909:60:78;9370:616;9165:821;;;;;;;:::o;835:1136:83:-;1053:9;;:14;1045:32;;;;;;;31959:2:416;1045:32:83;;;31941:21:416;31998:1;31978:18;;;31971:29;32036:7;32016:18;;;32009:35;32061:18;;1045:32:83;31757:328:416;1045:32:83;1184:7;:14;1170:10;:28;;1162:46;;;;;;;21523:2:416;1162:46:83;;;21505:21:416;21562:1;21542:18;;;21535:29;21600:7;21580:18;;;21573:35;21625:18;;1162:46:83;21321:328:416;1162:46:83;1292:1;1278:10;:15;;1270:33;;;;;;;21856:2:416;1270:33:83;;;21838:21:416;21895:1;21875:18;;;21868:29;21933:7;21913:18;;;21906:35;21958:18;;1270:33:83;21654:328:416;1270:33:83;520:3;1350:20;1398:450;1422:7;:14;1418:1;:18;1398:450;;;1502:13;1518:7;1526:1;1518:10;;;;;;;;:::i;:::-;;;;;;;1502:26;;1567:1;1550:19;;:5;:19;;;;:47;;;;-1:-1:-1;1573:24:83;;;520:3;1573:24;;1550:47;:73;;;;-1:-1:-1;1601:22:83;;;1618:4;1601:22;;1550:73;:98;;;;;1643:5;1627:21;;:12;:21;;;;1550:98;1542:116;;;;;;;14963:2:416;1542:116:83;;;14945:21:416;15002:1;14982:18;;;14975:29;15040:7;15020:18;;;15013:35;15065:18;;1542:116:83;14761:328:416;1542:116:83;1724:27;:13;;;1749:1;1724:13;;;:6;:13;;;;;;;:27;1716:45;;;;;;;15296:2:416;1716:45:83;;;15278:21:416;15335:1;15315:18;;;15308:29;15373:7;15353:18;;;15346:35;15398:18;;1716:45:83;15094:328:416;1716:45:83;1775:20;;;;;;;;:6;:20;;;;;:28;;;;;;;;;;;;;;1438:3;;;;:::i;:::-;;;;1398:450;;;-1:-1:-1;1857:20:83;;;;;;:6;:20;;;;;:38;;;;520:3;1857:38;;;1918:14;;1905:10;:27;1942:9;:22;835:1136::o;754:384:82:-;834:7;871:1;834:25;;;;;;;:39;:25;:39;826:57;;;;;;;32292:2:416;826:57:82;;;32274:21:416;32331:1;32311:18;;;32304:29;32369:7;32349:18;;;32342:35;32394:18;;826:57:82;32090:328:416;826:57:82;692:3;893:25;;;;;;;;;:44;;;;;;;;;:25;951:16;;;947:184;;1061:60;1069:2;1073:1;1076:4;1082:27;1111:9;1061:7;:60::i;:::-;1053:78;;;;;;;32625:2:416;1053:78:82;;;32607:21:416;32664:1;32644:18;;;32637:29;32702:7;32682:18;;;32675:35;32727:18;;1053:78:82;32423:328:416;478:970:86;707:52;;;32960:42:416;32948:55;;707:52:86;;;32930:74:416;33020:18;;;;33013:34;;;707:52:86;;;;;;;;;;32903:18:416;;;;707:52:86;;;;;;;;;;;;;;;1081:11;;-1:-1:-1;;707:52:86;;-1:-1:-1;;1081:11:86;-1:-1:-1;1054:5:86;1046;1039;1035:17;1030:72;1122:16;1155:69;;;;1246:4;1241:110;;;;1413:1;1398:16;;1115:317;;1155:69;1199:7;1184:22;;1155:69;;1241:110;1328:1;1322:8;1315:16;1305:7;1298:15;1295:37;1288:45;1273:60;;1115:317;;;834:608;478:970;;;;;:::o;196:154:416:-;282:42;275:5;271:54;264:5;261:65;251:93;;340:1;337;330:12;251:93;196:154;:::o;355:134::-;423:20;;452:31;423:20;452:31;:::i;:::-;355:134;;;:::o;494:315::-;562:6;570;623:2;611:9;602:7;598:23;594:32;591:52;;;639:1;636;629:12;591:52;678:9;665:23;697:31;722:5;697:31;:::i;:::-;747:5;799:2;784:18;;;;771:32;;-1:-1:-1;;;494:315:416:o;814:184::-;866:77;863:1;856:88;963:4;960:1;953:15;987:4;984:1;977:15;1003:777;1045:5;1098:3;1091:4;1083:6;1079:17;1075:27;1065:55;;1116:1;1113;1106:12;1065:55;1152:6;1139:20;1178:18;1215:2;1211;1208:10;1205:36;;;1221:18;;:::i;:::-;1355:2;1349:9;1417:4;1409:13;;1260:66;1405:22;;;1429:2;1401:31;1397:40;1385:53;;;1453:18;;;1473:22;;;1450:46;1447:72;;;1499:18;;:::i;:::-;1539:10;1535:2;1528:22;1574:2;1566:6;1559:18;1620:3;1613:4;1608:2;1600:6;1596:15;1592:26;1589:35;1586:55;;;1637:1;1634;1627:12;1586:55;1701:2;1694:4;1686:6;1682:17;1675:4;1667:6;1663:17;1650:54;1748:1;1741:4;1736:2;1728:6;1724:15;1720:26;1713:37;1768:6;1759:15;;;;;;1003:777;;;;:::o;1785:676::-;1889:6;1897;1905;1913;1966:3;1954:9;1945:7;1941:23;1937:33;1934:53;;;1983:1;1980;1973:12;1934:53;2019:9;2006:23;1996:33;;2080:2;2069:9;2065:18;2052:32;2103:18;2144:2;2136:6;2133:14;2130:34;;;2160:1;2157;2150:12;2130:34;2183:49;2224:7;2215:6;2204:9;2200:22;2183:49;:::i;:::-;2173:59;;2285:2;2274:9;2270:18;2257:32;2241:48;;2314:2;2304:8;2301:16;2298:36;;;2330:1;2327;2320:12;2298:36;;2353:51;2396:7;2385:8;2374:9;2370:24;2353:51;:::i;:::-;1785:676;;;;-1:-1:-1;2343:61:416;;2451:2;2436:18;2423:32;;-1:-1:-1;;;1785:676:416:o;2466:247::-;2525:6;2578:2;2566:9;2557:7;2553:23;2549:32;2546:52;;;2594:1;2591;2584:12;2546:52;2633:9;2620:23;2652:31;2677:5;2652:31;:::i;2910:150::-;2985:20;;3034:1;3024:12;;3014:40;;3050:1;3047;3040:12;3065:620;3175:6;3183;3191;3199;3252:3;3240:9;3231:7;3227:23;3223:33;3220:53;;;3269:1;3266;3259:12;3220:53;3308:9;3295:23;3327:31;3352:5;3327:31;:::i;:::-;3377:5;-1:-1:-1;3429:2:416;3414:18;;3401:32;;-1:-1:-1;3484:2:416;3469:18;;3456:32;3511:18;3500:30;;3497:50;;;3543:1;3540;3533:12;3497:50;3566:49;3607:7;3598:6;3587:9;3583:22;3566:49;:::i;:::-;3556:59;;;3634:45;3675:2;3664:9;3660:18;3634:45;:::i;:::-;3624:55;;3065:620;;;;;;;:::o;3690:530::-;3731:3;3769:5;3763:12;3796:6;3791:3;3784:19;3821:1;3831:162;3845:6;3842:1;3839:13;3831:162;;;3907:4;3963:13;;;3959:22;;3953:29;3935:11;;;3931:20;;3924:59;3860:12;3831:162;;;4011:6;4008:1;4005:13;4002:87;;;4077:1;4070:4;4061:6;4056:3;4052:16;4048:27;4041:38;4002:87;-1:-1:-1;4134:2:416;4122:15;4139:66;4118:88;4109:98;;;;4209:4;4105:109;;3690:530;-1:-1:-1;;3690:530:416:o;4225:298::-;4408:6;4401:14;4394:22;4383:9;4376:41;4453:2;4448;4437:9;4433:18;4426:30;4357:4;4473:44;4513:2;4502:9;4498:18;4490:6;4473:44;:::i;4528:248::-;4596:6;4604;4657:2;4645:9;4636:7;4632:23;4628:32;4625:52;;;4673:1;4670;4663:12;4625:52;-1:-1:-1;;4696:23:416;;;4766:2;4751:18;;;4738:32;;-1:-1:-1;4528:248:416:o;4781:217::-;4928:2;4917:9;4910:21;4891:4;4948:44;4988:2;4977:9;4973:18;4965:6;4948:44;:::i;5003:180::-;5062:6;5115:2;5103:9;5094:7;5090:23;5086:32;5083:52;;;5131:1;5128;5121:12;5083:52;-1:-1:-1;5154:23:416;;5003:180;-1:-1:-1;5003:180:416:o;5373:347::-;5424:8;5434:6;5488:3;5481:4;5473:6;5469:17;5465:27;5455:55;;5506:1;5503;5496:12;5455:55;-1:-1:-1;5529:20:416;;5572:18;5561:30;;5558:50;;;5604:1;5601;5594:12;5558:50;5641:4;5633:6;5629:17;5617:29;;5693:3;5686:4;5677:6;5669;5665:19;5661:30;5658:39;5655:59;;;5710:1;5707;5700:12;5655:59;5373:347;;;;;:::o;5725:1224::-;5908:6;5916;5924;5932;5940;5948;5956;5964;5972;5980;5988:7;6042:3;6030:9;6021:7;6017:23;6013:33;6010:53;;;6059:1;6056;6049:12;6010:53;6082:29;6101:9;6082:29;:::i;:::-;6072:39;;6158:2;6147:9;6143:18;6130:32;6120:42;;6181:18;6248:2;6242;6231:9;6227:18;6214:32;6211:40;6208:60;;;6264:1;6261;6254:12;6208:60;6303:84;6379:7;6372:2;6361:9;6357:18;6344:32;6333:9;6329:48;6303:84;:::i;:::-;6406:8;;-1:-1:-1;6433:8:416;-1:-1:-1;6460:45:416;6501:2;6486:18;;6460:45;:::i;:::-;6450:55;;6552:3;6541:9;6537:19;6524:33;6514:43;;6604:3;6593:9;6589:19;6576:33;6566:43;;6656:3;6645:9;6641:19;6628:33;6618:43;;6680:39;6714:3;6703:9;6699:19;6680:39;:::i;:::-;6670:49;;6738:39;6772:3;6761:9;6757:19;6738:39;:::i;:::-;6728:49;;6827:2;6820:3;6809:9;6805:19;6792:33;6789:41;6786:61;;;6843:1;6840;6833:12;6786:61;;6867:76;6935:7;6927:3;6916:9;6912:19;6899:33;6888:9;6884:49;6867:76;:::i;:::-;6856:87;;5725:1224;;;;;;;;;;;;;;:::o;7274:607::-;7369:6;7377;7385;7438:2;7426:9;7417:7;7413:23;7409:32;7406:52;;;7454:1;7451;7444:12;7406:52;7490:9;7477:23;7467:33;;7551:2;7540:9;7536:18;7523:32;7574:18;7615:2;7607:6;7604:14;7601:34;;;7631:1;7628;7621:12;7601:34;7654:49;7695:7;7686:6;7675:9;7671:22;7654:49;:::i;:::-;7644:59;;7756:2;7745:9;7741:18;7728:32;7712:48;;7785:2;7775:8;7772:16;7769:36;;;7801:1;7798;7791:12;7769:36;;7824:51;7867:7;7856:8;7845:9;7841:24;7824:51;:::i;:::-;7814:61;;;7274:607;;;;;:::o;8018:484::-;8071:3;8109:5;8103:12;8136:6;8131:3;8124:19;8162:4;8191:2;8186:3;8182:12;8175:19;;8228:2;8221:5;8217:14;8249:1;8259:218;8273:6;8270:1;8267:13;8259:218;;;8338:13;;8353:42;8334:62;8322:75;;8417:12;;;;8452:15;;;;8295:1;8288:9;8259:218;;;-1:-1:-1;8493:3:416;;8018:484;-1:-1:-1;;;;;8018:484:416:o;8507:261::-;8686:2;8675:9;8668:21;8649:4;8706:56;8758:2;8747:9;8743:18;8735:6;8706:56;:::i;8773:455::-;8850:6;8858;8911:2;8899:9;8890:7;8886:23;8882:32;8879:52;;;8927:1;8924;8917:12;8879:52;8966:9;8953:23;8985:31;9010:5;8985:31;:::i;:::-;9035:5;-1:-1:-1;9091:2:416;9076:18;;9063:32;9118:18;9107:30;;9104:50;;;9150:1;9147;9140:12;9104:50;9173:49;9214:7;9205:6;9194:9;9190:22;9173:49;:::i;:::-;9163:59;;;8773:455;;;;;:::o;9233:1353::-;9401:6;9409;9417;9425;9433;9441;9449;9457;9465;9473;9526:3;9514:9;9505:7;9501:23;9497:33;9494:53;;;9543:1;9540;9533:12;9494:53;9583:9;9570:23;9612:18;9653:2;9645:6;9642:14;9639:34;;;9669:1;9666;9659:12;9639:34;9707:6;9696:9;9692:22;9682:32;;9752:7;9745:4;9741:2;9737:13;9733:27;9723:55;;9774:1;9771;9764:12;9723:55;9814:2;9801:16;9840:2;9832:6;9829:14;9826:34;;;9856:1;9853;9846:12;9826:34;9911:7;9904:4;9894:6;9891:1;9887:14;9883:2;9879:23;9875:34;9872:47;9869:67;;;9932:1;9929;9922:12;9869:67;9963:4;9955:13;;;;-1:-1:-1;9987:6:416;;-1:-1:-1;10025:20:416;;10012:34;;-1:-1:-1;10065:38:416;10099:2;10084:18;;10065:38;:::i;:::-;10055:48;;10156:2;10145:9;10141:18;10128:32;10112:48;;10185:2;10175:8;10172:16;10169:36;;;10201:1;10198;10191:12;10169:36;;10240:60;10292:7;10281:8;10270:9;10266:24;10240:60;:::i;:::-;10319:8;;-1:-1:-1;10214:86:416;-1:-1:-1;10373:39:416;;-1:-1:-1;10407:3:416;10392:19;;10373:39;:::i;:::-;10363:49;;10431:39;10465:3;10454:9;10450:19;10431:39;:::i;:::-;10421:49;;10517:3;10506:9;10502:19;10489:33;10479:43;;10541:39;10575:3;10564:9;10560:19;10541:39;:::i;:::-;10531:49;;9233:1353;;;;;;;;;;;;;:::o;10591:709::-;10703:6;10711;10719;10727;10735;10788:3;10776:9;10767:7;10763:23;10759:33;10756:53;;;10805:1;10802;10795:12;10756:53;10844:9;10831:23;10863:31;10888:5;10863:31;:::i;:::-;10913:5;-1:-1:-1;10965:2:416;10950:18;;10937:32;;-1:-1:-1;11020:2:416;11005:18;;10992:32;11047:18;11036:30;;11033:50;;;11079:1;11076;11069:12;11033:50;11118:58;11168:7;11159:6;11148:9;11144:22;11118:58;:::i;:::-;11195:8;;-1:-1:-1;11092:84:416;-1:-1:-1;11249:45:416;;-1:-1:-1;11290:2:416;11275:18;;11249:45;:::i;:::-;11239:55;;10591:709;;;;;;;;:::o;11305:381::-;11512:2;11501:9;11494:21;11475:4;11532:56;11584:2;11573:9;11569:18;11561:6;11532:56;:::i;:::-;11524:64;;11636:42;11628:6;11624:55;11619:2;11608:9;11604:18;11597:83;11305:381;;;;;:::o;11691:1271::-;11857:6;11865;11873;11881;11889;11897;11905;11913;11921;11929;11937:7;11991:3;11979:9;11970:7;11966:23;11962:33;11959:53;;;12008:1;12005;11998:12;11959:53;12047:9;12034:23;12066:31;12091:5;12066:31;:::i;:::-;12116:5;-1:-1:-1;12168:2:416;12153:18;;12140:32;;-1:-1:-1;12223:2:416;12208:18;;12195:32;12250:18;12239:30;;12236:50;;;12282:1;12279;12272:12;12236:50;12321:58;12371:7;12362:6;12351:9;12347:22;12321:58;:::i;:::-;12398:8;;-1:-1:-1;12295:84:416;-1:-1:-1;12452:45:416;;-1:-1:-1;12493:2:416;12478:18;;12452:45;:::i;:::-;12442:55;;12544:3;12533:9;12529:19;12516:33;12506:43;;12596:3;12585:9;12581:19;12568:33;12558:43;;12648:3;12637:9;12633:19;12620:33;12610:43;;12705:3;12694:9;12690:19;12677:33;12719;12744:7;12719:33;:::i;:::-;12771:7;-1:-1:-1;12830:3:416;12815:19;;12802:33;12844;12802;12844;:::i;:::-;12896:7;12886:17;;;12951:3;12940:9;12936:19;12923:33;12912:44;;11691:1271;;;;;;;;;;;;;;:::o;13149:388::-;13217:6;13225;13278:2;13266:9;13257:7;13253:23;13249:32;13246:52;;;13294:1;13291;13284:12;13246:52;13333:9;13320:23;13352:31;13377:5;13352:31;:::i;:::-;13402:5;-1:-1:-1;13459:2:416;13444:18;;13431:32;13472:33;13431:32;13472:33;:::i;:::-;13524:7;13514:17;;;13149:388;;;;;:::o;13542:529::-;13619:6;13627;13635;13688:2;13676:9;13667:7;13663:23;13659:32;13656:52;;;13704:1;13701;13694:12;13656:52;13743:9;13730:23;13762:31;13787:5;13762:31;:::i;:::-;13812:5;-1:-1:-1;13869:2:416;13854:18;;13841:32;13882:33;13841:32;13882:33;:::i;:::-;13934:7;-1:-1:-1;13993:2:416;13978:18;;13965:32;14006:33;13965:32;14006:33;:::i;:::-;14058:7;14048:17;;;13542:529;;;;;:::o;14076:456::-;14153:6;14161;14169;14222:2;14210:9;14201:7;14197:23;14193:32;14190:52;;;14238:1;14235;14228:12;14190:52;14277:9;14264:23;14296:31;14321:5;14296:31;:::i;:::-;14346:5;-1:-1:-1;14403:2:416;14388:18;;14375:32;14416:33;14375:32;14416:33;:::i;:::-;14076:456;;14468:7;;-1:-1:-1;;;14522:2:416;14507:18;;;;14494:32;;14076:456::o;15427:184::-;15479:77;15476:1;15469:88;15576:4;15573:1;15566:15;15600:4;15597:1;15590:15;15616:195;15655:3;15686:66;15679:5;15676:77;15673:103;;15756:18;;:::i;:::-;-1:-1:-1;15803:1:416;15792:13;;15616:195::o;17379:377::-;17572:2;17561:9;17554:21;17535:4;17598:44;17638:2;17627:9;17623:18;17615:6;17598:44;:::i;:::-;17690:9;17682:6;17678:22;17673:2;17662:9;17658:18;17651:50;17718:32;17743:6;17735;17718:32;:::i;17761:336::-;17830:6;17883:2;17871:9;17862:7;17858:23;17854:32;17851:52;;;17899:1;17896;17889:12;17851:52;17931:9;17925:16;17981:66;17974:5;17970:78;17963:5;17960:89;17950:117;;18063:1;18060;18053:12;19153:195;19191:4;19228;19225:1;19221:12;19260:4;19257:1;19253:12;19285:3;19280;19277:12;19274:38;;;19292:18;;:::i;:::-;19329:13;;;19153:195;-1:-1:-1;;;19153:195:416:o;20422:228::-;20462:7;20588:1;20520:66;20516:74;20513:1;20510:81;20505:1;20498:9;20491:17;20487:105;20484:131;;;20595:18;;:::i;:::-;-1:-1:-1;20635:9:416;;20422:228::o;21987:184::-;22039:77;22036:1;22029:88;22136:4;22133:1;22126:15;22160:4;22157:1;22150:15;22176:294;22257:1;22250:5;22247:12;22237:200;;22293:77;22290:1;22283:88;22394:4;22391:1;22384:15;22422:4;22419:1;22412:15;22237:200;22446:18;;22176:294::o;22475:1431::-;22924:4;22953:3;22995:42;22987:6;22983:55;22972:9;22965:74;23075:6;23070:2;23059:9;23055:18;23048:34;23118:2;23113;23102:9;23098:18;23091:30;23157:6;23152:2;23141:9;23137:18;23130:34;;23183:3;23236:6;23228;23223:2;23212:9;23208:18;23195:48;23292:1;23287:2;23278:6;23267:9;23263:22;23259:31;23252:42;23349:66;23344:2;23336:6;23332:15;23328:88;23317:9;23313:104;23426:53;23475:2;23464:9;23460:18;23452:6;23426:53;:::i;:::-;23516:6;23510:3;23499:9;23495:19;23488:35;23560:6;23554:3;23543:9;23539:19;23532:35;23604:6;23598:3;23587:9;23583:19;23576:35;23620:47;23662:3;23651:9;23647:19;23639:6;7963:42;7952:54;7940:67;;7886:127;23620:47;7963:42;7952:54;;23718:3;23703:19;;7940:67;23784:2;23772:9;23768:2;23764:18;23760:27;23754:3;23743:9;23739:19;23732:56;23805:38;23839:2;23835;23831:11;23822:7;23805:38;:::i;:::-;23797:46;;;;23852:48;23895:3;23884:9;23880:19;23871:7;7963:42;7952:54;7940:67;;7886:127;23852:48;22475:1431;;;;;;;;;;;;;;;:::o;23911:128::-;23951:3;23982:1;23978:6;23975:1;23972:13;23969:39;;;23988:18;;:::i;:::-;-1:-1:-1;24024:9:416;;23911:128::o;24044:274::-;24084:1;24110;24100:189;;24145:77;24142:1;24135:88;24246:4;24243:1;24236:15;24274:4;24271:1;24264:15;24100:189;-1:-1:-1;24303:9:416;;24044:274::o;24656:125::-;24696:4;24724:1;24721;24718:8;24715:34;;;24729:18;;:::i;:::-;-1:-1:-1;24766:9:416;;24656:125::o;25968:184::-;26020:77;26017:1;26010:88;26117:4;26114:1;26107:15;26141:4;26138:1;26131:15;26157:1031;26441:3;26454:22;;;26426:19;;26511:22;;;26393:4;26591:6;26564:3;26549:19;;26393:4;26625:327;26639:6;26636:1;26633:13;26625:327;;;26714:6;26701:20;26734:31;26759:5;26734:31;:::i;:::-;26801:42;26790:54;26778:67;;26868:4;26927:15;;;;26892:12;;;;26661:1;26654:9;26625:327;;;-1:-1:-1;27003:4:416;26988:20;;26981:36;;;;-1:-1:-1;;27036:42:416;27114:15;;;27109:2;27094:18;;27087:43;27166:15;;27161:2;27146:18;;;27139:43;26969:3;26157:1031;-1:-1:-1;;26157:1031:416:o;28379:271::-;28562:6;28554;28549:3;28536:33;28518:3;28588:16;;28613:13;;;28588:16;28379:271;-1:-1:-1;28379:271:416:o;28655:1017::-;29041:4;29083:3;29072:9;29068:19;29060:27;;29114:6;29103:9;29096:25;29140:42;29230:2;29222:6;29218:15;29213:2;29202:9;29198:18;29191:43;29270:6;29265:2;29254:9;29250:18;29243:34;29313:6;29308:2;29297:9;29293:18;29286:34;29329:54;29378:3;29367:9;29363:19;29355:6;29329:54;:::i;:::-;29414:3;29399:19;;29392:35;;;;29458:3;29443:19;;29436:35;;;;29502:3;29487:19;;29480:35;;;;29552:15;;;29546:3;29531:19;;29524:44;29605:15;;;29599:3;29584:19;;29577:44;29652:3;29637:19;29630:36;;;;28655:1017;;-1:-1:-1;;;;;28655:1017:416:o;30557:196::-;30596:3;30624:5;30614:39;;30633:18;;:::i;:::-;-1:-1:-1;30680:66:416;30669:78;;30557:196::o","linkReferences":{}},"methodIdentifiers":{"VERSION()":"ffa1ad74","addOwnerWithThreshold(address,uint256)":"0d582f13","approveHash(bytes32)":"d4d9bdcd","approvedHashes(address,bytes32)":"7d832974","changeThreshold(uint256)":"694e80c3","checkNSignatures(bytes32,bytes,bytes,uint256)":"12fb68e0","checkSignatures(bytes32,bytes,bytes)":"934f3a11","disableModule(address,address)":"e009cfde","domainSeparator()":"f698da25","enableModule(address)":"610b5925","encodeTransactionData(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address,uint256)":"e86637db","execTransaction(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address,bytes)":"6a761202","execTransactionFromModule(address,uint256,bytes,uint8)":"468721a7","execTransactionFromModuleReturnData(address,uint256,bytes,uint8)":"5229073f","getChainId()":"3408e470","getModulesPaginated(address,uint256)":"cc2f8452","getOwners()":"a0e67e2b","getStorageAt(uint256,uint256)":"5624b25b","getThreshold()":"e75235b8","getTransactionHash(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address,uint256)":"d8d11f78","isModuleEnabled(address)":"2d9ad53d","isOwner(address)":"2f54bf6e","nonce()":"affed0e0","removeOwner(address,address,uint256)":"f8dc5dd9","requiredTxGas(address,uint256,bytes,uint8)":"c4ca3a9c","setFallbackHandler(address)":"f08a0323","setGuard(address)":"e19a9dd9","setup(address[],uint256,address,bytes,address,address,uint256,address)":"b63e800d","signedMessages(bytes32)":"5ae6bd37","simulateAndRevert(address,bytes)":"b4faba09","swapOwner(address,address,address)":"e318b52b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"AddedOwner\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"approvedHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ApproveHash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"handler\",\"type\":\"address\"}],\"name\":\"ChangedFallbackHandler\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"guard\",\"type\":\"address\"}],\"name\":\"ChangedGuard\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"name\":\"ChangedThreshold\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"module\",\"type\":\"address\"}],\"name\":\"DisabledModule\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"module\",\"type\":\"address\"}],\"name\":\"EnabledModule\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"}],\"name\":\"ExecutionFailure\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"module\",\"type\":\"address\"}],\"name\":\"ExecutionFromModuleFailure\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"module\",\"type\":\"address\"}],\"name\":\"ExecutionFromModuleSuccess\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"}],\"name\":\"ExecutionSuccess\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"RemovedOwner\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"initiator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"owners\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"initializer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"fallbackHandler\",\"type\":\"address\"}],\"name\":\"SafeSetup\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"msgHash\",\"type\":\"bytes32\"}],\"name\":\"SignMsg\",\"type\":\"event\"},{\"stateMutability\":\"nonpayable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_threshold\",\"type\":\"uint256\"}],\"name\":\"addOwnerWithThreshold\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashToApprove\",\"type\":\"bytes32\"}],\"name\":\"approveHash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"approvedHashes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_threshold\",\"type\":\"uint256\"}],\"name\":\"changeThreshold\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"dataHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signatures\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"requiredSignatures\",\"type\":\"uint256\"}],\"name\":\"checkNSignatures\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"dataHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signatures\",\"type\":\"bytes\"}],\"name\":\"checkSignatures\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"prevModule\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"module\",\"type\":\"address\"}],\"name\":\"disableModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"domainSeparator\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"module\",\"type\":\"address\"}],\"name\":\"enableModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"enum Enum.Operation\",\"name\":\"operation\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"safeTxGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasPrice\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"gasToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"refundReceiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"encodeTransactionData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"enum Enum.Operation\",\"name\":\"operation\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"safeTxGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasPrice\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"gasToken\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"refundReceiver\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"signatures\",\"type\":\"bytes\"}],\"name\":\"execTransaction\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"enum Enum.Operation\",\"name\":\"operation\",\"type\":\"uint8\"}],\"name\":\"execTransactionFromModule\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"enum Enum.Operation\",\"name\":\"operation\",\"type\":\"uint8\"}],\"name\":\"execTransactionFromModuleReturnData\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"start\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"pageSize\",\"type\":\"uint256\"}],\"name\":\"getModulesPaginated\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"array\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"next\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOwners\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"offset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"getStorageAt\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"enum Enum.Operation\",\"name\":\"operation\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"safeTxGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasPrice\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"gasToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"refundReceiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"getTransactionHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"module\",\"type\":\"address\"}],\"name\":\"isModuleEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"prevOwner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_threshold\",\"type\":\"uint256\"}],\"name\":\"removeOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"enum Enum.Operation\",\"name\":\"operation\",\"type\":\"uint8\"}],\"name\":\"requiredTxGas\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"handler\",\"type\":\"address\"}],\"name\":\"setFallbackHandler\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"guard\",\"type\":\"address\"}],\"name\":\"setGuard\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_owners\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"_threshold\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"fallbackHandler\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"paymentToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"internalType\":\"address payable\",\"name\":\"paymentReceiver\",\"type\":\"address\"}],\"name\":\"setup\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"signedMessages\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"targetContract\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"calldataPayload\",\"type\":\"bytes\"}],\"name\":\"simulateAndRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"prevOwner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"swapOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"author\":\"Stefan George - <stefan@gnosis.io>Richard Meissner - <richard@gnosis.io>\",\"kind\":\"dev\",\"methods\":{\"addOwnerWithThreshold(address,uint256)\":{\"details\":\"Allows to add a new owner to the Safe and update the threshold at the same time.      This can only be done via a Safe transaction.\",\"params\":{\"_threshold\":\"New threshold.\",\"owner\":\"New owner address.\"}},\"approveHash(bytes32)\":{\"details\":\"Marks a hash as approved. This can be used to validate a hash that is used by a signature.\",\"params\":{\"hashToApprove\":\"The hash that should be marked as approved for signatures that are verified by this contract.\"}},\"changeThreshold(uint256)\":{\"details\":\"Allows to update the number of required confirmations by Safe owners.      This can only be done via a Safe transaction.\",\"params\":{\"_threshold\":\"New threshold.\"}},\"checkNSignatures(bytes32,bytes,bytes,uint256)\":{\"details\":\"Checks whether the signature provided is valid for the provided data, hash. Will revert otherwise.\",\"params\":{\"data\":\"That should be signed (this is passed to an external validator contract)\",\"dataHash\":\"Hash of the data (could be either a message hash or transaction hash)\",\"requiredSignatures\":\"Amount of required valid signatures.\",\"signatures\":\"Signature data that should be verified. Can be ECDSA signature, contract signature (EIP-1271) or approved hash.\"}},\"checkSignatures(bytes32,bytes,bytes)\":{\"details\":\"Checks whether the signature provided is valid for the provided data, hash. Will revert otherwise.\",\"params\":{\"data\":\"That should be signed (this is passed to an external validator contract)\",\"dataHash\":\"Hash of the data (could be either a message hash or transaction hash)\",\"signatures\":\"Signature data that should be verified. Can be ECDSA signature, contract signature (EIP-1271) or approved hash.\"}},\"disableModule(address,address)\":{\"details\":\"Allows to remove a module from the whitelist.      This can only be done via a Safe transaction.\",\"params\":{\"module\":\"Module to be removed.\",\"prevModule\":\"Module that pointed to the module to be removed in the linked list\"}},\"enableModule(address)\":{\"details\":\"Allows to add a module to the whitelist.      This can only be done via a Safe transaction.\",\"params\":{\"module\":\"Module to be whitelisted.\"}},\"encodeTransactionData(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address,uint256)\":{\"details\":\"Returns the bytes that are hashed to be signed by owners.\",\"params\":{\"_nonce\":\"Transaction nonce.\",\"baseGas\":\"Gas costs for that are independent of the transaction execution(e.g. base transaction fee, signature check, payment of the refund)\",\"data\":\"Data payload.\",\"gasPrice\":\"Maximum gas price that should be used for this transaction.\",\"gasToken\":\"Token address (or 0 if ETH) that is used for the payment.\",\"operation\":\"Operation type.\",\"refundReceiver\":\"Address of receiver of gas payment (or 0 if tx.origin).\",\"safeTxGas\":\"Gas that should be used for the safe transaction.\",\"to\":\"Destination address.\",\"value\":\"Ether value.\"},\"returns\":{\"_0\":\"Transaction hash bytes.\"}},\"execTransaction(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address,bytes)\":{\"details\":\"Allows to execute a Safe transaction confirmed by required number of owners and then pays the account that submitted the transaction.      Note: The fees are always transferred, even if the user transaction fails.\",\"params\":{\"baseGas\":\"Gas costs that are independent of the transaction execution(e.g. base transaction fee, signature check, payment of the refund)\",\"data\":\"Data payload of Safe transaction.\",\"gasPrice\":\"Gas price that should be used for the payment calculation.\",\"gasToken\":\"Token address (or 0 if ETH) that is used for the payment.\",\"operation\":\"Operation type of Safe transaction.\",\"refundReceiver\":\"Address of receiver of gas payment (or 0 if tx.origin).\",\"safeTxGas\":\"Gas that should be used for the Safe transaction.\",\"signatures\":\"Packed signature data ({bytes32 r}{bytes32 s}{uint8 v})\",\"to\":\"Destination address of Safe transaction.\",\"value\":\"Ether value of Safe transaction.\"}},\"execTransactionFromModule(address,uint256,bytes,uint8)\":{\"details\":\"Allows a Module to execute a Safe transaction without any further confirmations.\",\"params\":{\"data\":\"Data payload of module transaction.\",\"operation\":\"Operation type of module transaction.\",\"to\":\"Destination address of module transaction.\",\"value\":\"Ether value of module transaction.\"}},\"execTransactionFromModuleReturnData(address,uint256,bytes,uint8)\":{\"details\":\"Allows a Module to execute a Safe transaction without any further confirmations and return data\",\"params\":{\"data\":\"Data payload of module transaction.\",\"operation\":\"Operation type of module transaction.\",\"to\":\"Destination address of module transaction.\",\"value\":\"Ether value of module transaction.\"}},\"getChainId()\":{\"details\":\"Returns the chain id used by this contract.\"},\"getModulesPaginated(address,uint256)\":{\"details\":\"Returns array of modules.\",\"params\":{\"pageSize\":\"Maximum number of modules that should be returned.\",\"start\":\"Start of the page.\"},\"returns\":{\"array\":\"Array of modules.\",\"next\":\"Start of the next page.\"}},\"getOwners()\":{\"details\":\"Returns array of owners.\",\"returns\":{\"_0\":\"Array of Safe owners.\"}},\"getStorageAt(uint256,uint256)\":{\"details\":\"Reads `length` bytes of storage in the currents contract\",\"params\":{\"length\":\"- the number of words (32 bytes) of data to read\",\"offset\":\"- the offset in the current contract's storage in words to start reading from\"},\"returns\":{\"_0\":\"the bytes that were read.\"}},\"getTransactionHash(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address,uint256)\":{\"details\":\"Returns hash to be signed by owners.\",\"params\":{\"_nonce\":\"Transaction nonce.\",\"baseGas\":\"Gas costs for data used to trigger the safe transaction.\",\"data\":\"Data payload.\",\"gasPrice\":\"Maximum gas price that should be used for this transaction.\",\"gasToken\":\"Token address (or 0 if ETH) that is used for the payment.\",\"operation\":\"Operation type.\",\"refundReceiver\":\"Address of receiver of gas payment (or 0 if tx.origin).\",\"safeTxGas\":\"Fas that should be used for the safe transaction.\",\"to\":\"Destination address.\",\"value\":\"Ether value.\"},\"returns\":{\"_0\":\"Transaction hash.\"}},\"isModuleEnabled(address)\":{\"details\":\"Returns if an module is enabled\",\"returns\":{\"_0\":\"True if the module is enabled\"}},\"removeOwner(address,address,uint256)\":{\"details\":\"Allows to remove an owner from the Safe and update the threshold at the same time.      This can only be done via a Safe transaction.\",\"params\":{\"_threshold\":\"New threshold.\",\"owner\":\"Owner address to be removed.\",\"prevOwner\":\"Owner that pointed to the owner to be removed in the linked list\"}},\"requiredTxGas(address,uint256,bytes,uint8)\":{\"details\":\"Allows to estimate a Safe transaction.      This method is only meant for estimation purpose, therefore the call will always revert and encode the result in the revert data.      Since the `estimateGas` function includes refunds, call this method to get an estimated of the costs that are deducted from the safe with `execTransaction`\",\"params\":{\"data\":\"Data payload of Safe transaction.\",\"operation\":\"Operation type of Safe transaction.\",\"to\":\"Destination address of Safe transaction.\",\"value\":\"Ether value of Safe transaction.\"},\"returns\":{\"_0\":\"Estimate without refunds and overhead fees (base transaction and payload data gas costs).\"}},\"setFallbackHandler(address)\":{\"details\":\"Allows to add a contract to handle fallback calls.      Only fallback calls without value and with data will be forwarded.      This can only be done via a Safe transaction.\",\"params\":{\"handler\":\"contract to handle fallbacks calls.\"}},\"setGuard(address)\":{\"details\":\"Set a guard that checks transactions before execution\",\"params\":{\"guard\":\"The address of the guard to be used or the 0 address to disable the guard\"}},\"setup(address[],uint256,address,bytes,address,address,uint256,address)\":{\"details\":\"Setup function sets initial storage of contract.\",\"params\":{\"_owners\":\"List of Safe owners.\",\"_threshold\":\"Number of required confirmations for a Safe transaction.\",\"data\":\"Data payload for optional delegate call.\",\"fallbackHandler\":\"Handler for fallback calls to this contract\",\"payment\":\"Value that should be paid\",\"paymentReceiver\":\"Adddress that should receive the payment (or 0 if tx.origin)\",\"paymentToken\":\"Token that should be used for the payment (0 is ETH)\",\"to\":\"Contract address for optional delegate call.\"}},\"simulateAndRevert(address,bytes)\":{\"details\":\"Performs a delegetecall on a targetContract in the context of self. Internally reverts execution to avoid side effects (making it static). This method reverts with data equal to `abi.encode(bool(success), bytes(response))`. Specifically, the `returndata` after a call to this method will be: `success:bool || response.length:uint256 || response:bytes`.\",\"params\":{\"calldataPayload\":\"Calldata that should be sent to the target contract (encoded method name and arguments).\",\"targetContract\":\"Address of the contract containing the code to execute.\"}},\"swapOwner(address,address,address)\":{\"details\":\"Allows to swap/replace an owner from the Safe with another address.      This can only be done via a Safe transaction.\",\"params\":{\"newOwner\":\"New owner address.\",\"oldOwner\":\"Owner address to be replaced.\",\"prevOwner\":\"Owner that pointed to the owner to be replaced in the linked list\"}}},\"title\":\"Gnosis Safe - A multisignature wallet with support for confirmations using signed messages based on ERC191.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addOwnerWithThreshold(address,uint256)\":{\"notice\":\"Adds the owner `owner` to the Safe and updates the threshold to `_threshold`.\"},\"changeThreshold(uint256)\":{\"notice\":\"Changes the threshold of the Safe to `_threshold`.\"},\"disableModule(address,address)\":{\"notice\":\"Disables the module `module` for the Safe.\"},\"enableModule(address)\":{\"notice\":\"Enables the module `module` for the Safe.\"},\"removeOwner(address,address,uint256)\":{\"notice\":\"Removes the owner `owner` from the Safe and updates the threshold to `_threshold`.\"},\"requiredTxGas(address,uint256,bytes,uint8)\":{\"notice\":\"Deprecated in favor of common/StorageAccessible.sol and will be removed in next version.\"},\"swapOwner(address,address,address)\":{\"notice\":\"Replaces the owner `oldOwner` in the Safe with `newOwner`.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/GnosisSafe.sol\":\"GnosisSafe\"},\"evmVersion\":\"london\",\"libraries\":{\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker\":\"0x4200000000000000000000000000000000000776\"},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":automate/=lib/automate/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":gelato/=lib/automate/contracts/\",\":hardhat/=lib/automate/node_modules/hardhat/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/\",\":prb-test/=lib/automate/lib/prb-test/src/\",\":prb/-est/=lib/automate/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/GnosisSafe.sol\":{\"keccak256\":\"0x2ca9e3e053c969b9364f62c50c2c25b92525db7fd0bad3ae1fb0c20dd575367c\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://ef1bceac49ae93b31aec41380862fdc267823c41e2dfefb9b7d70d0996e858e1\",\"dweb:/ipfs/QmWFU5bic2CGv8QgQ8bxJnjMfuJgNL2zZubt5hvzhcRZPc\"]},\"lib/safe-contracts/contracts/base/Executor.sol\":{\"keccak256\":\"0x4d3a900673473466bc27413fdbb11aae60b5580b792c49411f01544e0b24fe08\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://71ada0590998f47d1ee9759aa190c82d4b348d59a2f582747650d9720245a309\",\"dweb:/ipfs/Qmb9UudLoJpPutHVP9pXd1poP5CqFf5sxVFuYw14SYfRFk\"]},\"lib/safe-contracts/contracts/base/FallbackManager.sol\":{\"keccak256\":\"0x1be9f0f3e80a78134c2e3a026c6a14759785bd35d135e87a4a025aeb6742791f\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://44130f09921e895c0b9d7797de1d64940a8c43391efcda3a0208cb9ad96475a7\",\"dweb:/ipfs/QmUur4hzvCJ68PnW6zQFpemAMH2DH5mExPqSZdpKeY1ZRN\"]},\"lib/safe-contracts/contracts/base/GuardManager.sol\":{\"keccak256\":\"0x53a532a31f9632d5a73ad0df56f05bd2b66a2f781f571eb48d00367d370707f9\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://eebc15cb7c83cf9516514b34bd16fb19c08104c738fa172ae3c98c66b84708ed\",\"dweb:/ipfs/QmfJ4yX5WwHU58QVoxJFaejyerscTs6VCgn2TdUVrEZeTP\"]},\"lib/safe-contracts/contracts/base/ModuleManager.sol\":{\"keccak256\":\"0x5512760a0328309f82a71cbe2ac14e0942501b9d44d5fb417bd02174546672e5\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://763cf803a98a921d62ed51d7876a13aed63968c828f026ce2beb747d2631c0bc\",\"dweb:/ipfs/QmbHZoYsbkxC2kVCs4pQ4nRaFrcgU5X8FuLX7vV3qDR9Y5\"]},\"lib/safe-contracts/contracts/base/OwnerManager.sol\":{\"keccak256\":\"0x01a3d64cc0967f42ae63802409f5404d18352516ea2a6335005003d919ffcf12\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://91824103f2966612103705d6493290e193b0c0ca2bbe7141965184435dbb999b\",\"dweb:/ipfs/Qmd7u917v4DnD4hvQGAGbchVJ8A7pm1UCzCv7sAzQnRoi4\"]},\"lib/safe-contracts/contracts/common/Enum.sol\":{\"keccak256\":\"0x473e45b1a5cc47be494b0e123c9127f0c11c1e0992a321ae5a644c0bfdb2c14f\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://948e6d5a8bd7377f7795b6e28584eab9be5c0a8db240bf5e606744a175238c3d\",\"dweb:/ipfs/QmQQaUmQfpuejV41jbxKSTgEBYYCcVTjCsDMgf2htgz6ej\"]},\"lib/safe-contracts/contracts/common/EtherPaymentFallback.sol\":{\"keccak256\":\"0x1a7928d29877da84a3d0df846d5cd933d48ee095c1bde0aa044e249b12e27a72\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://962fc098cfdd8a43cc7d294c1105718ea985cacf1172ea0426f7370e2096b830\",\"dweb:/ipfs/QmdZrxJ7dSWuTjbrN133YiRDLwYQr21zLr3CqWWtowY9Gu\"]},\"lib/safe-contracts/contracts/common/SecuredTokenTransfer.sol\":{\"keccak256\":\"0x178682d8477da42936c7e8e24d39094c4ac08ecd8623794b9535d77001b665f1\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://2ae8a6d5c7d4cc19c3b957c8857e87e92a4570effebf32ba54184c2b8375a0a2\",\"dweb:/ipfs/QmVNgRcRVgQZriJm8KVXQvRbHQf74wH7ABmBNTjBTqBa8r\"]},\"lib/safe-contracts/contracts/common/SelfAuthorized.sol\":{\"keccak256\":\"0x59d36efca578b75541a776f62a0d0ef03712fc27b6647c3915c14b572106d7bc\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://8530c6e0392415d42486847cd4368d30f6cac42051596330692a571fcdbb9e29\",\"dweb:/ipfs/QmWw51Pshw5t2sMKANzxtfNdBSQUyQQpfTr3Mi7oNJGk7U\"]},\"lib/safe-contracts/contracts/common/SignatureDecoder.sol\":{\"keccak256\":\"0x2d37be182472ccfee62a33e9939f9b3d509be4c32e9fdebc2c1746c573655987\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://f76d96f10640beee7d4b4ad119bd3c64aeb26929011d9c1eec738c63ebc92f63\",\"dweb:/ipfs/QmaqgDocQumKeyUMgZU7STzpTASQjDbUxbQKuZ17xhLaXz\"]},\"lib/safe-contracts/contracts/common/Singleton.sol\":{\"keccak256\":\"0x6e02c18998de8834dd7d69890cb6ede996b6f635d2337081a596d91e35e2c648\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://ce1dfe9f820352b6f95b350ac0b3fa8afc24ad77bffffc2c9e00462e2a41a666\",\"dweb:/ipfs/QmVr2dCUbNbg5e7UsgngGij5mybgkXcbf5e5cPhT21aFXA\"]},\"lib/safe-contracts/contracts/common/StorageAccessible.sol\":{\"keccak256\":\"0x36853adb266c2ab7d3c612aca799441a86bd15d9e1d24fc6c70d63f5c2df3aaf\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://3f210f47e032444049040d2929b32e02089aac1d05b07dcd77ee34bb63505dfa\",\"dweb:/ipfs/QmbE8GXFAbthieTL51S2XPF5URyPaj1tDubVuhztkSoiPo\"]},\"lib/safe-contracts/contracts/external/GnosisSafeMath.sol\":{\"keccak256\":\"0x2a2b4d74f5834a9437be0cd3254d7a676698fc78aa47941c2009470196998d98\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://ea04449ba8b78ec44f3463b68cbce971875626e91d028add50900c41101a1156\",\"dweb:/ipfs/QmR95ci4HVkJuyYGvYRHVpp6N3wefu5WVDhipKwRechWV6\"]},\"lib/safe-contracts/contracts/interfaces/ISignatureValidator.sol\":{\"keccak256\":\"0x5b6e9bf17f28738ce88e751f420b0559f5151ba7bec2ff3c7bb31e42673d6801\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://bfdde8390deb619e38f98be67c5f9d26f12623855540af76b9f454142d3896c1\",\"dweb:/ipfs/QmZrr1ocToR5S62W177qV2csfs7wCQNs3t9vatyx32uLXz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":false}],"type":"event","name":"AddedOwner","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"approvedHash","type":"bytes32","indexed":true},{"internalType":"address","name":"owner","type":"address","indexed":true}],"type":"event","name":"ApproveHash","anonymous":false},{"inputs":[{"internalType":"address","name":"handler","type":"address","indexed":false}],"type":"event","name":"ChangedFallbackHandler","anonymous":false},{"inputs":[{"internalType":"address","name":"guard","type":"address","indexed":false}],"type":"event","name":"ChangedGuard","anonymous":false},{"inputs":[{"internalType":"uint256","name":"threshold","type":"uint256","indexed":false}],"type":"event","name":"ChangedThreshold","anonymous":false},{"inputs":[{"internalType":"address","name":"module","type":"address","indexed":false}],"type":"event","name":"DisabledModule","anonymous":false},{"inputs":[{"internalType":"address","name":"module","type":"address","indexed":false}],"type":"event","name":"EnabledModule","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"txHash","type":"bytes32","indexed":false},{"internalType":"uint256","name":"payment","type":"uint256","indexed":false}],"type":"event","name":"ExecutionFailure","anonymous":false},{"inputs":[{"internalType":"address","name":"module","type":"address","indexed":true}],"type":"event","name":"ExecutionFromModuleFailure","anonymous":false},{"inputs":[{"internalType":"address","name":"module","type":"address","indexed":true}],"type":"event","name":"ExecutionFromModuleSuccess","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"txHash","type":"bytes32","indexed":false},{"internalType":"uint256","name":"payment","type":"uint256","indexed":false}],"type":"event","name":"ExecutionSuccess","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":false}],"type":"event","name":"RemovedOwner","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"SafeReceived","anonymous":false},{"inputs":[{"internalType":"address","name":"initiator","type":"address","indexed":true},{"internalType":"address[]","name":"owners","type":"address[]","indexed":false},{"internalType":"uint256","name":"threshold","type":"uint256","indexed":false},{"internalType":"address","name":"initializer","type":"address","indexed":false},{"internalType":"address","name":"fallbackHandler","type":"address","indexed":false}],"type":"event","name":"SafeSetup","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"msgHash","type":"bytes32","indexed":true}],"type":"event","name":"SignMsg","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"fallback"},{"inputs":[],"stateMutability":"view","type":"function","name":"VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"_threshold","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"addOwnerWithThreshold"},{"inputs":[{"internalType":"bytes32","name":"hashToApprove","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"approveHash"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"approvedHashes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_threshold","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"changeThreshold"},{"inputs":[{"internalType":"bytes32","name":"dataHash","type":"bytes32"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"signatures","type":"bytes"},{"internalType":"uint256","name":"requiredSignatures","type":"uint256"}],"stateMutability":"view","type":"function","name":"checkNSignatures"},{"inputs":[{"internalType":"bytes32","name":"dataHash","type":"bytes32"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"signatures","type":"bytes"}],"stateMutability":"view","type":"function","name":"checkSignatures"},{"inputs":[{"internalType":"address","name":"prevModule","type":"address"},{"internalType":"address","name":"module","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"disableModule"},{"inputs":[],"stateMutability":"view","type":"function","name":"domainSeparator","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"module","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"enableModule"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"enum Enum.Operation","name":"operation","type":"uint8"},{"internalType":"uint256","name":"safeTxGas","type":"uint256"},{"internalType":"uint256","name":"baseGas","type":"uint256"},{"internalType":"uint256","name":"gasPrice","type":"uint256"},{"internalType":"address","name":"gasToken","type":"address"},{"internalType":"address","name":"refundReceiver","type":"address"},{"internalType":"uint256","name":"_nonce","type":"uint256"}],"stateMutability":"view","type":"function","name":"encodeTransactionData","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"enum Enum.Operation","name":"operation","type":"uint8"},{"internalType":"uint256","name":"safeTxGas","type":"uint256"},{"internalType":"uint256","name":"baseGas","type":"uint256"},{"internalType":"uint256","name":"gasPrice","type":"uint256"},{"internalType":"address","name":"gasToken","type":"address"},{"internalType":"address payable","name":"refundReceiver","type":"address"},{"internalType":"bytes","name":"signatures","type":"bytes"}],"stateMutability":"payable","type":"function","name":"execTransaction","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"enum Enum.Operation","name":"operation","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"execTransactionFromModule","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"enum Enum.Operation","name":"operation","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"execTransactionFromModuleReturnData","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"start","type":"address"},{"internalType":"uint256","name":"pageSize","type":"uint256"}],"stateMutability":"view","type":"function","name":"getModulesPaginated","outputs":[{"internalType":"address[]","name":"array","type":"address[]"},{"internalType":"address","name":"next","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getOwners","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"uint256","name":"offset","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"}],"stateMutability":"view","type":"function","name":"getStorageAt","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"enum Enum.Operation","name":"operation","type":"uint8"},{"internalType":"uint256","name":"safeTxGas","type":"uint256"},{"internalType":"uint256","name":"baseGas","type":"uint256"},{"internalType":"uint256","name":"gasPrice","type":"uint256"},{"internalType":"address","name":"gasToken","type":"address"},{"internalType":"address","name":"refundReceiver","type":"address"},{"internalType":"uint256","name":"_nonce","type":"uint256"}],"stateMutability":"view","type":"function","name":"getTransactionHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"module","type":"address"}],"stateMutability":"view","type":"function","name":"isModuleEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"prevOwner","type":"address"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"_threshold","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"removeOwner"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"enum Enum.Operation","name":"operation","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"requiredTxGas","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"handler","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setFallbackHandler"},{"inputs":[{"internalType":"address","name":"guard","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setGuard"},{"inputs":[{"internalType":"address[]","name":"_owners","type":"address[]"},{"internalType":"uint256","name":"_threshold","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"address","name":"fallbackHandler","type":"address"},{"internalType":"address","name":"paymentToken","type":"address"},{"internalType":"uint256","name":"payment","type":"uint256"},{"internalType":"address payable","name":"paymentReceiver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setup"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"signedMessages","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"targetContract","type":"address"},{"internalType":"bytes","name":"calldataPayload","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"simulateAndRevert"},{"inputs":[{"internalType":"address","name":"prevOwner","type":"address"},{"internalType":"address","name":"oldOwner","type":"address"},{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"swapOwner"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"addOwnerWithThreshold(address,uint256)":{"details":"Allows to add a new owner to the Safe and update the threshold at the same time.      This can only be done via a Safe transaction.","params":{"_threshold":"New threshold.","owner":"New owner address."}},"approveHash(bytes32)":{"details":"Marks a hash as approved. This can be used to validate a hash that is used by a signature.","params":{"hashToApprove":"The hash that should be marked as approved for signatures that are verified by this contract."}},"changeThreshold(uint256)":{"details":"Allows to update the number of required confirmations by Safe owners.      This can only be done via a Safe transaction.","params":{"_threshold":"New threshold."}},"checkNSignatures(bytes32,bytes,bytes,uint256)":{"details":"Checks whether the signature provided is valid for the provided data, hash. Will revert otherwise.","params":{"data":"That should be signed (this is passed to an external validator contract)","dataHash":"Hash of the data (could be either a message hash or transaction hash)","requiredSignatures":"Amount of required valid signatures.","signatures":"Signature data that should be verified. Can be ECDSA signature, contract signature (EIP-1271) or approved hash."}},"checkSignatures(bytes32,bytes,bytes)":{"details":"Checks whether the signature provided is valid for the provided data, hash. Will revert otherwise.","params":{"data":"That should be signed (this is passed to an external validator contract)","dataHash":"Hash of the data (could be either a message hash or transaction hash)","signatures":"Signature data that should be verified. Can be ECDSA signature, contract signature (EIP-1271) or approved hash."}},"disableModule(address,address)":{"details":"Allows to remove a module from the whitelist.      This can only be done via a Safe transaction.","params":{"module":"Module to be removed.","prevModule":"Module that pointed to the module to be removed in the linked list"}},"enableModule(address)":{"details":"Allows to add a module to the whitelist.      This can only be done via a Safe transaction.","params":{"module":"Module to be whitelisted."}},"encodeTransactionData(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address,uint256)":{"details":"Returns the bytes that are hashed to be signed by owners.","params":{"_nonce":"Transaction nonce.","baseGas":"Gas costs for that are independent of the transaction execution(e.g. base transaction fee, signature check, payment of the refund)","data":"Data payload.","gasPrice":"Maximum gas price that should be used for this transaction.","gasToken":"Token address (or 0 if ETH) that is used for the payment.","operation":"Operation type.","refundReceiver":"Address of receiver of gas payment (or 0 if tx.origin).","safeTxGas":"Gas that should be used for the safe transaction.","to":"Destination address.","value":"Ether value."},"returns":{"_0":"Transaction hash bytes."}},"execTransaction(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address,bytes)":{"details":"Allows to execute a Safe transaction confirmed by required number of owners and then pays the account that submitted the transaction.      Note: The fees are always transferred, even if the user transaction fails.","params":{"baseGas":"Gas costs that are independent of the transaction execution(e.g. base transaction fee, signature check, payment of the refund)","data":"Data payload of Safe transaction.","gasPrice":"Gas price that should be used for the payment calculation.","gasToken":"Token address (or 0 if ETH) that is used for the payment.","operation":"Operation type of Safe transaction.","refundReceiver":"Address of receiver of gas payment (or 0 if tx.origin).","safeTxGas":"Gas that should be used for the Safe transaction.","signatures":"Packed signature data ({bytes32 r}{bytes32 s}{uint8 v})","to":"Destination address of Safe transaction.","value":"Ether value of Safe transaction."}},"execTransactionFromModule(address,uint256,bytes,uint8)":{"details":"Allows a Module to execute a Safe transaction without any further confirmations.","params":{"data":"Data payload of module transaction.","operation":"Operation type of module transaction.","to":"Destination address of module transaction.","value":"Ether value of module transaction."}},"execTransactionFromModuleReturnData(address,uint256,bytes,uint8)":{"details":"Allows a Module to execute a Safe transaction without any further confirmations and return data","params":{"data":"Data payload of module transaction.","operation":"Operation type of module transaction.","to":"Destination address of module transaction.","value":"Ether value of module transaction."}},"getChainId()":{"details":"Returns the chain id used by this contract."},"getModulesPaginated(address,uint256)":{"details":"Returns array of modules.","params":{"pageSize":"Maximum number of modules that should be returned.","start":"Start of the page."},"returns":{"array":"Array of modules.","next":"Start of the next page."}},"getOwners()":{"details":"Returns array of owners.","returns":{"_0":"Array of Safe owners."}},"getStorageAt(uint256,uint256)":{"details":"Reads `length` bytes of storage in the currents contract","params":{"length":"- the number of words (32 bytes) of data to read","offset":"- the offset in the current contract's storage in words to start reading from"},"returns":{"_0":"the bytes that were read."}},"getTransactionHash(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address,uint256)":{"details":"Returns hash to be signed by owners.","params":{"_nonce":"Transaction nonce.","baseGas":"Gas costs for data used to trigger the safe transaction.","data":"Data payload.","gasPrice":"Maximum gas price that should be used for this transaction.","gasToken":"Token address (or 0 if ETH) that is used for the payment.","operation":"Operation type.","refundReceiver":"Address of receiver of gas payment (or 0 if tx.origin).","safeTxGas":"Fas that should be used for the safe transaction.","to":"Destination address.","value":"Ether value."},"returns":{"_0":"Transaction hash."}},"isModuleEnabled(address)":{"details":"Returns if an module is enabled","returns":{"_0":"True if the module is enabled"}},"removeOwner(address,address,uint256)":{"details":"Allows to remove an owner from the Safe and update the threshold at the same time.      This can only be done via a Safe transaction.","params":{"_threshold":"New threshold.","owner":"Owner address to be removed.","prevOwner":"Owner that pointed to the owner to be removed in the linked list"}},"requiredTxGas(address,uint256,bytes,uint8)":{"details":"Allows to estimate a Safe transaction.      This method is only meant for estimation purpose, therefore the call will always revert and encode the result in the revert data.      Since the `estimateGas` function includes refunds, call this method to get an estimated of the costs that are deducted from the safe with `execTransaction`","params":{"data":"Data payload of Safe transaction.","operation":"Operation type of Safe transaction.","to":"Destination address of Safe transaction.","value":"Ether value of Safe transaction."},"returns":{"_0":"Estimate without refunds and overhead fees (base transaction and payload data gas costs)."}},"setFallbackHandler(address)":{"details":"Allows to add a contract to handle fallback calls.      Only fallback calls without value and with data will be forwarded.      This can only be done via a Safe transaction.","params":{"handler":"contract to handle fallbacks calls."}},"setGuard(address)":{"details":"Set a guard that checks transactions before execution","params":{"guard":"The address of the guard to be used or the 0 address to disable the guard"}},"setup(address[],uint256,address,bytes,address,address,uint256,address)":{"details":"Setup function sets initial storage of contract.","params":{"_owners":"List of Safe owners.","_threshold":"Number of required confirmations for a Safe transaction.","data":"Data payload for optional delegate call.","fallbackHandler":"Handler for fallback calls to this contract","payment":"Value that should be paid","paymentReceiver":"Adddress that should receive the payment (or 0 if tx.origin)","paymentToken":"Token that should be used for the payment (0 is ETH)","to":"Contract address for optional delegate call."}},"simulateAndRevert(address,bytes)":{"details":"Performs a delegetecall on a targetContract in the context of self. Internally reverts execution to avoid side effects (making it static). This method reverts with data equal to `abi.encode(bool(success), bytes(response))`. Specifically, the `returndata` after a call to this method will be: `success:bool || response.length:uint256 || response:bytes`.","params":{"calldataPayload":"Calldata that should be sent to the target contract (encoded method name and arguments).","targetContract":"Address of the contract containing the code to execute."}},"swapOwner(address,address,address)":{"details":"Allows to swap/replace an owner from the Safe with another address.      This can only be done via a Safe transaction.","params":{"newOwner":"New owner address.","oldOwner":"Owner address to be replaced.","prevOwner":"Owner that pointed to the owner to be replaced in the linked list"}}},"version":1},"userdoc":{"kind":"user","methods":{"addOwnerWithThreshold(address,uint256)":{"notice":"Adds the owner `owner` to the Safe and updates the threshold to `_threshold`."},"changeThreshold(uint256)":{"notice":"Changes the threshold of the Safe to `_threshold`."},"disableModule(address,address)":{"notice":"Disables the module `module` for the Safe."},"enableModule(address)":{"notice":"Enables the module `module` for the Safe."},"removeOwner(address,address,uint256)":{"notice":"Removes the owner `owner` from the Safe and updates the threshold to `_threshold`."},"requiredTxGas(address,uint256,bytes,uint8)":{"notice":"Deprecated in favor of common/StorageAccessible.sol and will be removed in next version."},"swapOwner(address,address,address)":{"notice":"Replaces the owner `oldOwner` in the Safe with `newOwner`."}},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","automate/=lib/automate/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","gelato/=lib/automate/contracts/","hardhat/=lib/automate/node_modules/hardhat/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/","prb-test/=lib/automate/lib/prb-test/src/","prb/-est/=lib/automate/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/GnosisSafe.sol":"GnosisSafe"},"evmVersion":"london","libraries":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"lib/safe-contracts/contracts/GnosisSafe.sol":{"keccak256":"0x2ca9e3e053c969b9364f62c50c2c25b92525db7fd0bad3ae1fb0c20dd575367c","urls":["bzz-raw://ef1bceac49ae93b31aec41380862fdc267823c41e2dfefb9b7d70d0996e858e1","dweb:/ipfs/QmWFU5bic2CGv8QgQ8bxJnjMfuJgNL2zZubt5hvzhcRZPc"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/base/Executor.sol":{"keccak256":"0x4d3a900673473466bc27413fdbb11aae60b5580b792c49411f01544e0b24fe08","urls":["bzz-raw://71ada0590998f47d1ee9759aa190c82d4b348d59a2f582747650d9720245a309","dweb:/ipfs/Qmb9UudLoJpPutHVP9pXd1poP5CqFf5sxVFuYw14SYfRFk"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/base/FallbackManager.sol":{"keccak256":"0x1be9f0f3e80a78134c2e3a026c6a14759785bd35d135e87a4a025aeb6742791f","urls":["bzz-raw://44130f09921e895c0b9d7797de1d64940a8c43391efcda3a0208cb9ad96475a7","dweb:/ipfs/QmUur4hzvCJ68PnW6zQFpemAMH2DH5mExPqSZdpKeY1ZRN"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/base/GuardManager.sol":{"keccak256":"0x53a532a31f9632d5a73ad0df56f05bd2b66a2f781f571eb48d00367d370707f9","urls":["bzz-raw://eebc15cb7c83cf9516514b34bd16fb19c08104c738fa172ae3c98c66b84708ed","dweb:/ipfs/QmfJ4yX5WwHU58QVoxJFaejyerscTs6VCgn2TdUVrEZeTP"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/base/ModuleManager.sol":{"keccak256":"0x5512760a0328309f82a71cbe2ac14e0942501b9d44d5fb417bd02174546672e5","urls":["bzz-raw://763cf803a98a921d62ed51d7876a13aed63968c828f026ce2beb747d2631c0bc","dweb:/ipfs/QmbHZoYsbkxC2kVCs4pQ4nRaFrcgU5X8FuLX7vV3qDR9Y5"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/base/OwnerManager.sol":{"keccak256":"0x01a3d64cc0967f42ae63802409f5404d18352516ea2a6335005003d919ffcf12","urls":["bzz-raw://91824103f2966612103705d6493290e193b0c0ca2bbe7141965184435dbb999b","dweb:/ipfs/Qmd7u917v4DnD4hvQGAGbchVJ8A7pm1UCzCv7sAzQnRoi4"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/common/Enum.sol":{"keccak256":"0x473e45b1a5cc47be494b0e123c9127f0c11c1e0992a321ae5a644c0bfdb2c14f","urls":["bzz-raw://948e6d5a8bd7377f7795b6e28584eab9be5c0a8db240bf5e606744a175238c3d","dweb:/ipfs/QmQQaUmQfpuejV41jbxKSTgEBYYCcVTjCsDMgf2htgz6ej"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/common/EtherPaymentFallback.sol":{"keccak256":"0x1a7928d29877da84a3d0df846d5cd933d48ee095c1bde0aa044e249b12e27a72","urls":["bzz-raw://962fc098cfdd8a43cc7d294c1105718ea985cacf1172ea0426f7370e2096b830","dweb:/ipfs/QmdZrxJ7dSWuTjbrN133YiRDLwYQr21zLr3CqWWtowY9Gu"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/common/SecuredTokenTransfer.sol":{"keccak256":"0x178682d8477da42936c7e8e24d39094c4ac08ecd8623794b9535d77001b665f1","urls":["bzz-raw://2ae8a6d5c7d4cc19c3b957c8857e87e92a4570effebf32ba54184c2b8375a0a2","dweb:/ipfs/QmVNgRcRVgQZriJm8KVXQvRbHQf74wH7ABmBNTjBTqBa8r"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/common/SelfAuthorized.sol":{"keccak256":"0x59d36efca578b75541a776f62a0d0ef03712fc27b6647c3915c14b572106d7bc","urls":["bzz-raw://8530c6e0392415d42486847cd4368d30f6cac42051596330692a571fcdbb9e29","dweb:/ipfs/QmWw51Pshw5t2sMKANzxtfNdBSQUyQQpfTr3Mi7oNJGk7U"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/common/SignatureDecoder.sol":{"keccak256":"0x2d37be182472ccfee62a33e9939f9b3d509be4c32e9fdebc2c1746c573655987","urls":["bzz-raw://f76d96f10640beee7d4b4ad119bd3c64aeb26929011d9c1eec738c63ebc92f63","dweb:/ipfs/QmaqgDocQumKeyUMgZU7STzpTASQjDbUxbQKuZ17xhLaXz"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/common/Singleton.sol":{"keccak256":"0x6e02c18998de8834dd7d69890cb6ede996b6f635d2337081a596d91e35e2c648","urls":["bzz-raw://ce1dfe9f820352b6f95b350ac0b3fa8afc24ad77bffffc2c9e00462e2a41a666","dweb:/ipfs/QmVr2dCUbNbg5e7UsgngGij5mybgkXcbf5e5cPhT21aFXA"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/common/StorageAccessible.sol":{"keccak256":"0x36853adb266c2ab7d3c612aca799441a86bd15d9e1d24fc6c70d63f5c2df3aaf","urls":["bzz-raw://3f210f47e032444049040d2929b32e02089aac1d05b07dcd77ee34bb63505dfa","dweb:/ipfs/QmbE8GXFAbthieTL51S2XPF5URyPaj1tDubVuhztkSoiPo"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/external/GnosisSafeMath.sol":{"keccak256":"0x2a2b4d74f5834a9437be0cd3254d7a676698fc78aa47941c2009470196998d98","urls":["bzz-raw://ea04449ba8b78ec44f3463b68cbce971875626e91d028add50900c41101a1156","dweb:/ipfs/QmR95ci4HVkJuyYGvYRHVpp6N3wefu5WVDhipKwRechWV6"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/interfaces/ISignatureValidator.sol":{"keccak256":"0x5b6e9bf17f28738ce88e751f420b0559f5151ba7bec2ff3c7bb31e42673d6801","urls":["bzz-raw://bfdde8390deb619e38f98be67c5f9d26f12623855540af76b9f454142d3896c1","dweb:/ipfs/QmZrr1ocToR5S62W177qV2csfs7wCQNs3t9vatyx32uLXz"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[{"astId":60215,"contract":"lib/safe-contracts/contracts/GnosisSafe.sol:GnosisSafe","label":"singleton","offset":0,"slot":"0","type":"t_address"},{"astId":59266,"contract":"lib/safe-contracts/contracts/GnosisSafe.sol:GnosisSafe","label":"modules","offset":0,"slot":"1","type":"t_mapping(t_address,t_address)"},{"astId":59625,"contract":"lib/safe-contracts/contracts/GnosisSafe.sol:GnosisSafe","label":"owners","offset":0,"slot":"2","type":"t_mapping(t_address,t_address)"},{"astId":59627,"contract":"lib/safe-contracts/contracts/GnosisSafe.sol:GnosisSafe","label":"ownerCount","offset":0,"slot":"3","type":"t_uint256"},{"astId":59629,"contract":"lib/safe-contracts/contracts/GnosisSafe.sol:GnosisSafe","label":"threshold","offset":0,"slot":"4","type":"t_uint256"},{"astId":58199,"contract":"lib/safe-contracts/contracts/GnosisSafe.sol:GnosisSafe","label":"nonce","offset":0,"slot":"5","type":"t_uint256"},{"astId":58201,"contract":"lib/safe-contracts/contracts/GnosisSafe.sol:GnosisSafe","label":"_deprecatedDomainSeparator","offset":0,"slot":"6","type":"t_bytes32"},{"astId":58205,"contract":"lib/safe-contracts/contracts/GnosisSafe.sol:GnosisSafe","label":"signedMessages","offset":0,"slot":"7","type":"t_mapping(t_bytes32,t_uint256)"},{"astId":58211,"contract":"lib/safe-contracts/contracts/GnosisSafe.sol:GnosisSafe","label":"approvedHashes","offset":0,"slot":"8","type":"t_mapping(t_address,t_mapping(t_bytes32,t_uint256))"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_address,t_address)":{"encoding":"mapping","key":"t_address","label":"mapping(address => address)","numberOfBytes":"32","value":"t_address"},"t_mapping(t_address,t_mapping(t_bytes32,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes32 => uint256))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_uint256)"},"t_mapping(t_bytes32,t_uint256)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user","methods":{"addOwnerWithThreshold(address,uint256)":{"notice":"Adds the owner `owner` to the Safe and updates the threshold to `_threshold`."},"changeThreshold(uint256)":{"notice":"Changes the threshold of the Safe to `_threshold`."},"disableModule(address,address)":{"notice":"Disables the module `module` for the Safe."},"enableModule(address)":{"notice":"Enables the module `module` for the Safe."},"removeOwner(address,address,uint256)":{"notice":"Removes the owner `owner` from the Safe and updates the threshold to `_threshold`."},"requiredTxGas(address,uint256,bytes,uint8)":{"notice":"Deprecated in favor of common/StorageAccessible.sol and will be removed in next version."},"swapOwner(address,address,address)":{"notice":"Replaces the owner `oldOwner` in the Safe with `newOwner`."}}},"devdoc":{"version":1,"kind":"dev","author":"Stefan George - <stefan@gnosis.io>Richard Meissner - <richard@gnosis.io>","methods":{"addOwnerWithThreshold(address,uint256)":{"details":"Allows to add a new owner to the Safe and update the threshold at the same time.      This can only be done via a Safe transaction.","params":{"_threshold":"New threshold.","owner":"New owner address."}},"approveHash(bytes32)":{"details":"Marks a hash as approved. This can be used to validate a hash that is used by a signature.","params":{"hashToApprove":"The hash that should be marked as approved for signatures that are verified by this contract."}},"changeThreshold(uint256)":{"details":"Allows to update the number of required confirmations by Safe owners.      This can only be done via a Safe transaction.","params":{"_threshold":"New threshold."}},"checkNSignatures(bytes32,bytes,bytes,uint256)":{"details":"Checks whether the signature provided is valid for the provided data, hash. Will revert otherwise.","params":{"data":"That should be signed (this is passed to an external validator contract)","dataHash":"Hash of the data (could be either a message hash or transaction hash)","requiredSignatures":"Amount of required valid signatures.","signatures":"Signature data that should be verified. Can be ECDSA signature, contract signature (EIP-1271) or approved hash."}},"checkSignatures(bytes32,bytes,bytes)":{"details":"Checks whether the signature provided is valid for the provided data, hash. Will revert otherwise.","params":{"data":"That should be signed (this is passed to an external validator contract)","dataHash":"Hash of the data (could be either a message hash or transaction hash)","signatures":"Signature data that should be verified. Can be ECDSA signature, contract signature (EIP-1271) or approved hash."}},"disableModule(address,address)":{"details":"Allows to remove a module from the whitelist.      This can only be done via a Safe transaction.","params":{"module":"Module to be removed.","prevModule":"Module that pointed to the module to be removed in the linked list"}},"enableModule(address)":{"details":"Allows to add a module to the whitelist.      This can only be done via a Safe transaction.","params":{"module":"Module to be whitelisted."}},"encodeTransactionData(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address,uint256)":{"details":"Returns the bytes that are hashed to be signed by owners.","params":{"_nonce":"Transaction nonce.","baseGas":"Gas costs for that are independent of the transaction execution(e.g. base transaction fee, signature check, payment of the refund)","data":"Data payload.","gasPrice":"Maximum gas price that should be used for this transaction.","gasToken":"Token address (or 0 if ETH) that is used for the payment.","operation":"Operation type.","refundReceiver":"Address of receiver of gas payment (or 0 if tx.origin).","safeTxGas":"Gas that should be used for the safe transaction.","to":"Destination address.","value":"Ether value."},"returns":{"_0":"Transaction hash bytes."}},"execTransaction(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address,bytes)":{"details":"Allows to execute a Safe transaction confirmed by required number of owners and then pays the account that submitted the transaction.      Note: The fees are always transferred, even if the user transaction fails.","params":{"baseGas":"Gas costs that are independent of the transaction execution(e.g. base transaction fee, signature check, payment of the refund)","data":"Data payload of Safe transaction.","gasPrice":"Gas price that should be used for the payment calculation.","gasToken":"Token address (or 0 if ETH) that is used for the payment.","operation":"Operation type of Safe transaction.","refundReceiver":"Address of receiver of gas payment (or 0 if tx.origin).","safeTxGas":"Gas that should be used for the Safe transaction.","signatures":"Packed signature data ({bytes32 r}{bytes32 s}{uint8 v})","to":"Destination address of Safe transaction.","value":"Ether value of Safe transaction."}},"execTransactionFromModule(address,uint256,bytes,uint8)":{"details":"Allows a Module to execute a Safe transaction without any further confirmations.","params":{"data":"Data payload of module transaction.","operation":"Operation type of module transaction.","to":"Destination address of module transaction.","value":"Ether value of module transaction."}},"execTransactionFromModuleReturnData(address,uint256,bytes,uint8)":{"details":"Allows a Module to execute a Safe transaction without any further confirmations and return data","params":{"data":"Data payload of module transaction.","operation":"Operation type of module transaction.","to":"Destination address of module transaction.","value":"Ether value of module transaction."}},"getChainId()":{"details":"Returns the chain id used by this contract."},"getModulesPaginated(address,uint256)":{"details":"Returns array of modules.","params":{"pageSize":"Maximum number of modules that should be returned.","start":"Start of the page."},"returns":{"array":"Array of modules.","next":"Start of the next page."}},"getOwners()":{"details":"Returns array of owners.","returns":{"_0":"Array of Safe owners."}},"getStorageAt(uint256,uint256)":{"details":"Reads `length` bytes of storage in the currents contract","params":{"length":"- the number of words (32 bytes) of data to read","offset":"- the offset in the current contract's storage in words to start reading from"},"returns":{"_0":"the bytes that were read."}},"getTransactionHash(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address,uint256)":{"details":"Returns hash to be signed by owners.","params":{"_nonce":"Transaction nonce.","baseGas":"Gas costs for data used to trigger the safe transaction.","data":"Data payload.","gasPrice":"Maximum gas price that should be used for this transaction.","gasToken":"Token address (or 0 if ETH) that is used for the payment.","operation":"Operation type.","refundReceiver":"Address of receiver of gas payment (or 0 if tx.origin).","safeTxGas":"Fas that should be used for the safe transaction.","to":"Destination address.","value":"Ether value."},"returns":{"_0":"Transaction hash."}},"isModuleEnabled(address)":{"details":"Returns if an module is enabled","returns":{"_0":"True if the module is enabled"}},"removeOwner(address,address,uint256)":{"details":"Allows to remove an owner from the Safe and update the threshold at the same time.      This can only be done via a Safe transaction.","params":{"_threshold":"New threshold.","owner":"Owner address to be removed.","prevOwner":"Owner that pointed to the owner to be removed in the linked list"}},"requiredTxGas(address,uint256,bytes,uint8)":{"details":"Allows to estimate a Safe transaction.      This method is only meant for estimation purpose, therefore the call will always revert and encode the result in the revert data.      Since the `estimateGas` function includes refunds, call this method to get an estimated of the costs that are deducted from the safe with `execTransaction`","params":{"data":"Data payload of Safe transaction.","operation":"Operation type of Safe transaction.","to":"Destination address of Safe transaction.","value":"Ether value of Safe transaction."},"returns":{"_0":"Estimate without refunds and overhead fees (base transaction and payload data gas costs)."}},"setFallbackHandler(address)":{"details":"Allows to add a contract to handle fallback calls.      Only fallback calls without value and with data will be forwarded.      This can only be done via a Safe transaction.","params":{"handler":"contract to handle fallbacks calls."}},"setGuard(address)":{"details":"Set a guard that checks transactions before execution","params":{"guard":"The address of the guard to be used or the 0 address to disable the guard"}},"setup(address[],uint256,address,bytes,address,address,uint256,address)":{"details":"Setup function sets initial storage of contract.","params":{"_owners":"List of Safe owners.","_threshold":"Number of required confirmations for a Safe transaction.","data":"Data payload for optional delegate call.","fallbackHandler":"Handler for fallback calls to this contract","payment":"Value that should be paid","paymentReceiver":"Adddress that should receive the payment (or 0 if tx.origin)","paymentToken":"Token that should be used for the payment (0 is ETH)","to":"Contract address for optional delegate call."}},"simulateAndRevert(address,bytes)":{"details":"Performs a delegetecall on a targetContract in the context of self. Internally reverts execution to avoid side effects (making it static). This method reverts with data equal to `abi.encode(bool(success), bytes(response))`. Specifically, the `returndata` after a call to this method will be: `success:bool || response.length:uint256 || response:bytes`.","params":{"calldataPayload":"Calldata that should be sent to the target contract (encoded method name and arguments).","targetContract":"Address of the contract containing the code to execute."}},"swapOwner(address,address,address)":{"details":"Allows to swap/replace an owner from the Safe with another address.      This can only be done via a Safe transaction.","params":{"newOwner":"New owner address.","oldOwner":"Owner address to be replaced.","prevOwner":"Owner that pointed to the owner to be replaced in the linked list"}}},"title":"Gnosis Safe - A multisignature wallet with support for confirmations using signed messages based on ERC191."},"ast":{"absolutePath":"lib/safe-contracts/contracts/GnosisSafe.sol","id":59070,"exportedSymbols":{"Enum":[60115],"EtherPaymentFallback":[60137],"Executor":[59101],"FallbackManager":[59152],"GnosisSafe":[59069],"GnosisSafeMath":[60488],"Guard":[59190],"GuardManager":[59230],"ISignatureValidator":[60593],"ISignatureValidatorConstants":[60580],"ModuleManager":[59597],"OwnerManager":[60108],"SecuredTokenTransfer":[60164],"SelfAuthorized":[60190],"SignatureDecoder":[60210],"Singleton":[60216],"StorageAccessible":[60265]},"nodeType":"SourceUnit","src":"42:20209:78","nodes":[{"id":58118,"nodeType":"PragmaDirective","src":"42:31:78","nodes":[],"literals":["solidity",">=","0.7",".0","<","0.9",".0"]},{"id":58119,"nodeType":"ImportDirective","src":"75:34:78","nodes":[],"absolutePath":"lib/safe-contracts/contracts/base/ModuleManager.sol","file":"./base/ModuleManager.sol","nameLocation":"-1:-1:-1","scope":59070,"sourceUnit":59598,"symbolAliases":[],"unitAlias":""},{"id":58120,"nodeType":"ImportDirective","src":"110:33:78","nodes":[],"absolutePath":"lib/safe-contracts/contracts/base/OwnerManager.sol","file":"./base/OwnerManager.sol","nameLocation":"-1:-1:-1","scope":59070,"sourceUnit":60109,"symbolAliases":[],"unitAlias":""},{"id":58121,"nodeType":"ImportDirective","src":"144:36:78","nodes":[],"absolutePath":"lib/safe-contracts/contracts/base/FallbackManager.sol","file":"./base/FallbackManager.sol","nameLocation":"-1:-1:-1","scope":59070,"sourceUnit":59153,"symbolAliases":[],"unitAlias":""},{"id":58122,"nodeType":"ImportDirective","src":"181:33:78","nodes":[],"absolutePath":"lib/safe-contracts/contracts/base/GuardManager.sol","file":"./base/GuardManager.sol","nameLocation":"-1:-1:-1","scope":59070,"sourceUnit":59231,"symbolAliases":[],"unitAlias":""},{"id":58123,"nodeType":"ImportDirective","src":"215:43:78","nodes":[],"absolutePath":"lib/safe-contracts/contracts/common/EtherPaymentFallback.sol","file":"./common/EtherPaymentFallback.sol","nameLocation":"-1:-1:-1","scope":59070,"sourceUnit":60138,"symbolAliases":[],"unitAlias":""},{"id":58124,"nodeType":"ImportDirective","src":"259:32:78","nodes":[],"absolutePath":"lib/safe-contracts/contracts/common/Singleton.sol","file":"./common/Singleton.sol","nameLocation":"-1:-1:-1","scope":59070,"sourceUnit":60217,"symbolAliases":[],"unitAlias":""},{"id":58125,"nodeType":"ImportDirective","src":"292:39:78","nodes":[],"absolutePath":"lib/safe-contracts/contracts/common/SignatureDecoder.sol","file":"./common/SignatureDecoder.sol","nameLocation":"-1:-1:-1","scope":59070,"sourceUnit":60211,"symbolAliases":[],"unitAlias":""},{"id":58126,"nodeType":"ImportDirective","src":"332:43:78","nodes":[],"absolutePath":"lib/safe-contracts/contracts/common/SecuredTokenTransfer.sol","file":"./common/SecuredTokenTransfer.sol","nameLocation":"-1:-1:-1","scope":59070,"sourceUnit":60165,"symbolAliases":[],"unitAlias":""},{"id":58127,"nodeType":"ImportDirective","src":"376:40:78","nodes":[],"absolutePath":"lib/safe-contracts/contracts/common/StorageAccessible.sol","file":"./common/StorageAccessible.sol","nameLocation":"-1:-1:-1","scope":59070,"sourceUnit":60266,"symbolAliases":[],"unitAlias":""},{"id":58128,"nodeType":"ImportDirective","src":"417:46:78","nodes":[],"absolutePath":"lib/safe-contracts/contracts/interfaces/ISignatureValidator.sol","file":"./interfaces/ISignatureValidator.sol","nameLocation":"-1:-1:-1","scope":59070,"sourceUnit":60594,"symbolAliases":[],"unitAlias":""},{"id":58129,"nodeType":"ImportDirective","src":"464:39:78","nodes":[],"absolutePath":"lib/safe-contracts/contracts/external/GnosisSafeMath.sol","file":"./external/GnosisSafeMath.sol","nameLocation":"-1:-1:-1","scope":59070,"sourceUnit":60489,"symbolAliases":[],"unitAlias":""},{"id":59069,"nodeType":"ContractDefinition","src":"722:19528:78","nodes":[{"id":58153,"nodeType":"UsingForDirective","src":"972:33:78","nodes":[],"global":false,"libraryName":{"id":58151,"name":"GnosisSafeMath","nodeType":"IdentifierPath","referencedDeclaration":60488,"src":"978:14:78"},"typeName":{"id":58152,"name":"uint256","nodeType":"ElementaryTypeName","src":"997:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":58156,"nodeType":"VariableDeclaration","src":"1011:40:78","nodes":[],"constant":true,"functionSelector":"ffa1ad74","mutability":"constant","name":"VERSION","nameLocation":"1034:7:78","scope":59069,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":58154,"name":"string","nodeType":"ElementaryTypeName","src":"1011:6:78","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"312e332e30","id":58155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1044:7:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_6a08c3e203132c561752255a4d52ffae85bb9c5d33cb3291520dea1b84356389","typeString":"literal_string \"1.3.0\""},"value":"1.3.0"},"visibility":"public"},{"id":58159,"nodeType":"VariableDeclaration","src":"1155:119:78","nodes":[],"constant":true,"mutability":"constant","name":"DOMAIN_SEPARATOR_TYPEHASH","nameLocation":"1180:25:78","scope":59069,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":58157,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1155:7:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307834376537393533346132343539353265386231363839336133333662383561336439656139666138633537336633643830336166623932613739343639323138","id":58158,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1208:66:78","typeDescriptions":{"typeIdentifier":"t_rational_32523383700587834770323112271211932718128200013265661849047136999858837557784_by_1","typeString":"int_const 3252...(69 digits omitted)...7784"},"value":"0x47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a79469218"},"visibility":"private"},{"id":58162,"nodeType":"VariableDeclaration","src":"1487:110:78","nodes":[],"constant":true,"mutability":"constant","name":"SAFE_TX_TYPEHASH","nameLocation":"1512:16:78","scope":59069,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":58160,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1487:7:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307862623833313064343836333638646236626436663834393430326664643733616435336433313662356134623236343461643665666530663934313238366438","id":58161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1531:66:78","typeDescriptions":{"typeIdentifier":"t_rational_84814075808141314178395468817534025465894426928601295766380145544921651250904_by_1","typeString":"int_const 8481...(69 digits omitted)...0904"},"value":"0xbb8310d486368db6bd6f849402fdd73ad53d316b5a4b2644ad6efe0f941286d8"},"visibility":"private"},{"id":58175,"nodeType":"EventDefinition","src":"1604:126:78","nodes":[],"anonymous":false,"eventSelector":"141df868a6331af528e38c83b7aa03edc19be66e37ae67f9285bf4f8e3c6a1a8","name":"SafeSetup","nameLocation":"1610:9:78","parameters":{"id":58174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58164,"indexed":true,"mutability":"mutable","name":"initiator","nameLocation":"1636:9:78","nodeType":"VariableDeclaration","scope":58175,"src":"1620:25:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58163,"name":"address","nodeType":"ElementaryTypeName","src":"1620:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58167,"indexed":false,"mutability":"mutable","name":"owners","nameLocation":"1657:6:78","nodeType":"VariableDeclaration","scope":58175,"src":"1647:16:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":58165,"name":"address","nodeType":"ElementaryTypeName","src":"1647:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":58166,"nodeType":"ArrayTypeName","src":"1647:9:78","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":58169,"indexed":false,"mutability":"mutable","name":"threshold","nameLocation":"1673:9:78","nodeType":"VariableDeclaration","scope":58175,"src":"1665:17:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58168,"name":"uint256","nodeType":"ElementaryTypeName","src":"1665:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":58171,"indexed":false,"mutability":"mutable","name":"initializer","nameLocation":"1692:11:78","nodeType":"VariableDeclaration","scope":58175,"src":"1684:19:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58170,"name":"address","nodeType":"ElementaryTypeName","src":"1684:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58173,"indexed":false,"mutability":"mutable","name":"fallbackHandler","nameLocation":"1713:15:78","nodeType":"VariableDeclaration","scope":58175,"src":"1705:23:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58172,"name":"address","nodeType":"ElementaryTypeName","src":"1705:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1619:110:78"}},{"id":58181,"nodeType":"EventDefinition","src":"1735:71:78","nodes":[],"anonymous":false,"eventSelector":"f2a0eb156472d1440255b0d7c1e19cc07115d1051fe605b0dce69acfec884d9c","name":"ApproveHash","nameLocation":"1741:11:78","parameters":{"id":58180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58177,"indexed":true,"mutability":"mutable","name":"approvedHash","nameLocation":"1769:12:78","nodeType":"VariableDeclaration","scope":58181,"src":"1753:28:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":58176,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1753:7:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":58179,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"1799:5:78","nodeType":"VariableDeclaration","scope":58181,"src":"1783:21:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58178,"name":"address","nodeType":"ElementaryTypeName","src":"1783:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1752:53:78"}},{"id":58185,"nodeType":"EventDefinition","src":"1811:39:78","nodes":[],"anonymous":false,"eventSelector":"e7f4675038f4f6034dfcbbb24c4dc08e4ebf10eb9d257d3d02c0f38d122ac6e4","name":"SignMsg","nameLocation":"1817:7:78","parameters":{"id":58184,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58183,"indexed":true,"mutability":"mutable","name":"msgHash","nameLocation":"1841:7:78","nodeType":"VariableDeclaration","scope":58185,"src":"1825:23:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":58182,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1825:7:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1824:25:78"}},{"id":58191,"nodeType":"EventDefinition","src":"1855:56:78","nodes":[],"anonymous":false,"eventSelector":"23428b18acfb3ea64b08dc0c1d296ea9c09702c09083ca5272e64d115b687d23","name":"ExecutionFailure","nameLocation":"1861:16:78","parameters":{"id":58190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58187,"indexed":false,"mutability":"mutable","name":"txHash","nameLocation":"1886:6:78","nodeType":"VariableDeclaration","scope":58191,"src":"1878:14:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":58186,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1878:7:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":58189,"indexed":false,"mutability":"mutable","name":"payment","nameLocation":"1902:7:78","nodeType":"VariableDeclaration","scope":58191,"src":"1894:15:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58188,"name":"uint256","nodeType":"ElementaryTypeName","src":"1894:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1877:33:78"}},{"id":58197,"nodeType":"EventDefinition","src":"1916:56:78","nodes":[],"anonymous":false,"eventSelector":"442e715f626346e8c54381002da614f62bee8d27386535b2521ec8540898556e","name":"ExecutionSuccess","nameLocation":"1922:16:78","parameters":{"id":58196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58193,"indexed":false,"mutability":"mutable","name":"txHash","nameLocation":"1947:6:78","nodeType":"VariableDeclaration","scope":58197,"src":"1939:14:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":58192,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1939:7:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":58195,"indexed":false,"mutability":"mutable","name":"payment","nameLocation":"1963:7:78","nodeType":"VariableDeclaration","scope":58197,"src":"1955:15:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58194,"name":"uint256","nodeType":"ElementaryTypeName","src":"1955:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1938:33:78"}},{"id":58199,"nodeType":"VariableDeclaration","src":"1978:20:78","nodes":[],"constant":false,"functionSelector":"affed0e0","mutability":"mutable","name":"nonce","nameLocation":"1993:5:78","scope":59069,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58198,"name":"uint256","nodeType":"ElementaryTypeName","src":"1978:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":58201,"nodeType":"VariableDeclaration","src":"2004:42:78","nodes":[],"constant":false,"mutability":"mutable","name":"_deprecatedDomainSeparator","nameLocation":"2020:26:78","scope":59069,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":58200,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2004:7:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"id":58205,"nodeType":"VariableDeclaration","src":"2149:49:78","nodes":[],"constant":false,"functionSelector":"5ae6bd37","mutability":"mutable","name":"signedMessages","nameLocation":"2184:14:78","scope":59069,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"typeName":{"id":58204,"keyType":{"id":58202,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2157:7:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2149:27:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueType":{"id":58203,"name":"uint256","nodeType":"ElementaryTypeName","src":"2168:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"id":58211,"nodeType":"VariableDeclaration","src":"2309:69:78","nodes":[],"constant":false,"functionSelector":"7d832974","mutability":"mutable","name":"approvedHashes","nameLocation":"2364:14:78","scope":59069,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_uint256_$_$","typeString":"mapping(address => mapping(bytes32 => uint256))"},"typeName":{"id":58210,"keyType":{"id":58206,"name":"address","nodeType":"ElementaryTypeName","src":"2317:7:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2309:47:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_uint256_$_$","typeString":"mapping(address => mapping(bytes32 => uint256))"},"valueType":{"id":58209,"keyType":{"id":58207,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2336:7:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2328:27:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueType":{"id":58208,"name":"uint256","nodeType":"ElementaryTypeName","src":"2347:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"public"},{"id":58219,"nodeType":"FunctionDefinition","src":"2490:247:78","nodes":[],"body":{"id":58218,"nodeType":"Block","src":"2504:233:78","nodes":[],"statements":[{"expression":{"id":58216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58214,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59629,"src":"2717:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":58215,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2729:1:78","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2717:13:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58217,"nodeType":"ExpressionStatement","src":"2717:13:78"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":58212,"nodeType":"ParameterList","parameters":[],"src":"2501:2:78"},"returnParameters":{"id":58213,"nodeType":"ParameterList","parameters":[],"src":"2504:0:78"},"scope":59069,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":58284,"nodeType":"FunctionDefinition","src":"3353:1151:78","nodes":[],"body":{"id":58283,"nodeType":"Block","src":"3625:879:78","nodes":[],"statements":[{"expression":{"arguments":[{"id":58241,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58223,"src":"3764:7:78","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":58242,"name":"_threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58225,"src":"3773:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":58240,"name":"setupOwners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59746,"src":"3752:11:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (address[] memory,uint256)"}},"id":58243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3752:32:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58244,"nodeType":"ExpressionStatement","src":"3752:32:78"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":58250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58245,"name":"fallbackHandler","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58231,"src":"3798:15:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":58248,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3825:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":58247,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3817:7:78","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58246,"name":"address","nodeType":"ElementaryTypeName","src":"3817:7:78","typeDescriptions":{}}},"id":58249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3817:10:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3798:29:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":58255,"nodeType":"IfStatement","src":"3794:78:78","trueBody":{"expression":{"arguments":[{"id":58252,"name":"fallbackHandler","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58231,"src":"3856:15:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":58251,"name":"internalSetFallbackHandler","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59125,"src":"3829:26:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":58253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3829:43:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58254,"nodeType":"ExpressionStatement","src":"3829:43:78"}},{"expression":{"arguments":[{"id":58257,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58227,"src":"4020:2:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58258,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58229,"src":"4024:4:78","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":58256,"name":"setupModules","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59313,"src":"4007:12:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":58259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4007:22:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58260,"nodeType":"ExpressionStatement","src":"4007:22:78"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58261,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58235,"src":"4044:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":58262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4054:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4044:11:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":58273,"nodeType":"IfStatement","src":"4040:380:78","trueBody":{"id":58272,"nodeType":"Block","src":"4057:363:78","statements":[{"expression":{"arguments":[{"id":58265,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58235,"src":"4364:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":58266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4373:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"31","id":58267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4376:1:78","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"id":58268,"name":"paymentToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58233,"src":"4379:12:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58269,"name":"paymentReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58237,"src":"4393:15:78","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":58264,"name":"handlePayment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58578,"src":"4350:13:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_address_payable_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256,address,address payable) returns (uint256)"}},"id":58270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4350:59:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58271,"nodeType":"ExpressionStatement","src":"4350:59:78"}]}},{"eventCall":{"arguments":[{"expression":{"id":58275,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4444:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":58276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"4444:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58277,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58223,"src":"4456:7:78","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":58278,"name":"_threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58225,"src":"4465:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":58279,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58227,"src":"4477:2:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58280,"name":"fallbackHandler","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58231,"src":"4481:15:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":58274,"name":"SafeSetup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58175,"src":"4434:9:78","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address[] memory,uint256,address,address)"}},"id":58281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4434:63:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58282,"nodeType":"EmitStatement","src":"4429:68:78"}]},"documentation":{"id":58220,"nodeType":"StructuredDocumentation","src":"2743:605:78","text":"@dev Setup function sets initial storage of contract.\n @param _owners List of Safe owners.\n @param _threshold Number of required confirmations for a Safe transaction.\n @param to Contract address for optional delegate call.\n @param data Data payload for optional delegate call.\n @param fallbackHandler Handler for fallback calls to this contract\n @param paymentToken Token that should be used for the payment (0 is ETH)\n @param payment Value that should be paid\n @param paymentReceiver Adddress that should receive the payment (or 0 if tx.origin)"},"functionSelector":"b63e800d","implemented":true,"kind":"function","modifiers":[],"name":"setup","nameLocation":"3362:5:78","parameters":{"id":58238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58223,"mutability":"mutable","name":"_owners","nameLocation":"3396:7:78","nodeType":"VariableDeclaration","scope":58284,"src":"3377:26:78","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":58221,"name":"address","nodeType":"ElementaryTypeName","src":"3377:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":58222,"nodeType":"ArrayTypeName","src":"3377:9:78","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":58225,"mutability":"mutable","name":"_threshold","nameLocation":"3421:10:78","nodeType":"VariableDeclaration","scope":58284,"src":"3413:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58224,"name":"uint256","nodeType":"ElementaryTypeName","src":"3413:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":58227,"mutability":"mutable","name":"to","nameLocation":"3449:2:78","nodeType":"VariableDeclaration","scope":58284,"src":"3441:10:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58226,"name":"address","nodeType":"ElementaryTypeName","src":"3441:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58229,"mutability":"mutable","name":"data","nameLocation":"3476:4:78","nodeType":"VariableDeclaration","scope":58284,"src":"3461:19:78","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":58228,"name":"bytes","nodeType":"ElementaryTypeName","src":"3461:5:78","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":58231,"mutability":"mutable","name":"fallbackHandler","nameLocation":"3498:15:78","nodeType":"VariableDeclaration","scope":58284,"src":"3490:23:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58230,"name":"address","nodeType":"ElementaryTypeName","src":"3490:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58233,"mutability":"mutable","name":"paymentToken","nameLocation":"3531:12:78","nodeType":"VariableDeclaration","scope":58284,"src":"3523:20:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58232,"name":"address","nodeType":"ElementaryTypeName","src":"3523:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58235,"mutability":"mutable","name":"payment","nameLocation":"3561:7:78","nodeType":"VariableDeclaration","scope":58284,"src":"3553:15:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58234,"name":"uint256","nodeType":"ElementaryTypeName","src":"3553:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":58237,"mutability":"mutable","name":"paymentReceiver","nameLocation":"3594:15:78","nodeType":"VariableDeclaration","scope":58284,"src":"3578:31:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":58236,"name":"address","nodeType":"ElementaryTypeName","src":"3578:15:78","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"3367:248:78"},"returnParameters":{"id":58239,"nodeType":"ParameterList","parameters":[],"src":"3625:0:78"},"scope":59069,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":58493,"nodeType":"FunctionDefinition","src":"5531:3628:78","nodes":[],"body":{"id":58492,"nodeType":"Block","src":"5891:3268:78","nodes":[],"statements":[{"assignments":[58312],"declarations":[{"constant":false,"id":58312,"mutability":"mutable","name":"txHash","nameLocation":"5909:6:78","nodeType":"VariableDeclaration","scope":58492,"src":"5901:14:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":58311,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5901:7:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":58313,"nodeType":"VariableDeclarationStatement","src":"5901:14:78"},{"id":58344,"nodeType":"Block","src":"6014:692:78","statements":[{"assignments":[58315],"declarations":[{"constant":false,"id":58315,"mutability":"mutable","name":"txHashData","nameLocation":"6041:10:78","nodeType":"VariableDeclaration","scope":58344,"src":"6028:23:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":58314,"name":"bytes","nodeType":"ElementaryTypeName","src":"6028:5:78","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":58328,"initialValue":{"arguments":[{"id":58317,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58287,"src":"6153:2:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58318,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58289,"src":"6177:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":58319,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58291,"src":"6204:4:78","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":58320,"name":"operation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58294,"src":"6230:9:78","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$60114","typeString":"enum Enum.Operation"}},{"id":58321,"name":"safeTxGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58296,"src":"6261:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":58322,"name":"baseGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58298,"src":"6328:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":58323,"name":"gasPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58300,"src":"6357:8:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":58324,"name":"gasToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58302,"src":"6387:8:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58325,"name":"refundReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58304,"src":"6417:14:78","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":58326,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58199,"src":"6491:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_enum$_Operation_$60114","typeString":"enum Enum.Operation"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":58316,"name":"encodeTransactionData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59025,"src":"6070:21:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$_t_enum$_Operation_$60114_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,uint256,bytes calldata,enum Enum.Operation,uint256,uint256,uint256,address,address,uint256) view returns (bytes memory)"}},"id":58327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6070:444:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"6028:486:78"},{"expression":{"id":58330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6583:7:78","subExpression":{"id":58329,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58199,"src":"6583:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58331,"nodeType":"ExpressionStatement","src":"6583:7:78"},{"expression":{"id":58336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58332,"name":"txHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58312,"src":"6604:6:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":58334,"name":"txHashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58315,"src":"6623:10:78","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":58333,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6613:9:78","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":58335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6613:21:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6604:30:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":58337,"nodeType":"ExpressionStatement","src":"6604:30:78"},{"expression":{"arguments":[{"id":58339,"name":"txHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58312,"src":"6664:6:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":58340,"name":"txHashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58315,"src":"6672:10:78","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":58341,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58306,"src":"6684:10:78","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":58338,"name":"checkSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58607,"src":"6648:15:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes32,bytes memory,bytes memory) view"}},"id":58342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6648:47:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58343,"nodeType":"ExpressionStatement","src":"6648:47:78"}]},{"assignments":[58346],"declarations":[{"constant":false,"id":58346,"mutability":"mutable","name":"guard","nameLocation":"6723:5:78","nodeType":"VariableDeclaration","scope":58492,"src":"6715:13:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58345,"name":"address","nodeType":"ElementaryTypeName","src":"6715:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":58349,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":58347,"name":"getGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59229,"src":"6731:8:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":58348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6731:10:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6715:26:78"},{"id":58376,"nodeType":"Block","src":"6751:571:78","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":58355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58350,"name":"guard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58346,"src":"6769:5:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":58353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6786:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":58352,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6778:7:78","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58351,"name":"address","nodeType":"ElementaryTypeName","src":"6778:7:78","typeDescriptions":{}}},"id":58354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6778:10:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6769:19:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":58375,"nodeType":"IfStatement","src":"6765:547:78","trueBody":{"id":58374,"nodeType":"Block","src":"6790:522:78","statements":[{"expression":{"arguments":[{"id":58360,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58287,"src":"6899:2:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58361,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58289,"src":"6923:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":58362,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58291,"src":"6950:4:78","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":58363,"name":"operation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58294,"src":"6976:9:78","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$60114","typeString":"enum Enum.Operation"}},{"id":58364,"name":"safeTxGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58296,"src":"7007:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":58365,"name":"baseGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58298,"src":"7074:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":58366,"name":"gasPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58300,"src":"7103:8:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":58367,"name":"gasToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58302,"src":"7133:8:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58368,"name":"refundReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58304,"src":"7163:14:78","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":58369,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58306,"src":"7237:10:78","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":58370,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7269:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":58371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"7269:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_enum$_Operation_$60114","typeString":"enum Enum.Operation"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":58357,"name":"guard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58346,"src":"6814:5:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":58356,"name":"Guard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59190,"src":"6808:5:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Guard_$59190_$","typeString":"type(contract Guard)"}},"id":58358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6808:12:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Guard_$59190","typeString":"contract Guard"}},"id":58359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"checkTransaction","nodeType":"MemberAccess","referencedDeclaration":59182,"src":"6808:29:78","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$60114_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_address_payable_$_t_bytes_memory_ptr_$_t_address_$returns$__$","typeString":"function (address,uint256,bytes memory,enum Enum.Operation,uint256,uint256,uint256,address,address payable,bytes memory,address) external"}},"id":58372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6808:489:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58373,"nodeType":"ExpressionStatement","src":"6808:489:78"}]}}]},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":58378,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"7613:7:78","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":58379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7613:9:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58388,"name":"safeTxGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58296,"src":"7654:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32353030","id":58389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7666:4:78","typeDescriptions":{"typeIdentifier":"t_rational_2500_by_1","typeString":"int_const 2500"},"value":"2500"},"src":"7654:16:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58380,"name":"safeTxGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58296,"src":"7628:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3634","id":58381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7640:2:78","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"7628:14:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":58383,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7627:16:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"3633","id":58384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7646:2:78","typeDescriptions":{"typeIdentifier":"t_rational_63_by_1","typeString":"int_const 63"},"value":"63"},"src":"7627:21:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":58386,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7626:23:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","referencedDeclaration":60487,"src":"7626:27:78","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":58391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7626:45:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"353030","id":58392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7674:3:78","typeDescriptions":{"typeIdentifier":"t_rational_500_by_1","typeString":"int_const 500"},"value":"500"},"src":"7626:51:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7613:64:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4753303130","id":58395,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7679:7:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_9d970fd9adbe3047cd5b7a20406b6bf2e613338cfe3a19aca4ca1810b67fad10","typeString":"literal_string \"GS010\""},"value":"GS010"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9d970fd9adbe3047cd5b7a20406b6bf2e613338cfe3a19aca4ca1810b67fad10","typeString":"literal_string \"GS010\""}],"id":58377,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7605:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":58396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7605:82:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58397,"nodeType":"ExpressionStatement","src":"7605:82:78"},{"id":58474,"nodeType":"Block","src":"7786:1227:78","statements":[{"assignments":[58399],"declarations":[{"constant":false,"id":58399,"mutability":"mutable","name":"gasUsed","nameLocation":"7808:7:78","nodeType":"VariableDeclaration","scope":58474,"src":"7800:15:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58398,"name":"uint256","nodeType":"ElementaryTypeName","src":"7800:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":58402,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":58400,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"7818:7:78","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":58401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7818:9:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7800:27:78"},{"expression":{"id":58420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58403,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58309,"src":"8096:7:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":58405,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58287,"src":"8114:2:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58406,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58289,"src":"8118:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":58407,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58291,"src":"8125:4:78","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":58408,"name":"operation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58294,"src":"8131:9:78","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$60114","typeString":"enum Enum.Operation"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58409,"name":"gasPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58300,"src":"8142:8:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":58410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8154:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8142:13:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":58417,"name":"safeTxGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58296,"src":"8179:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"8142:46:78","trueExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":58412,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"8159:7:78","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":58413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8159:9:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"32353030","id":58414,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8171:4:78","typeDescriptions":{"typeIdentifier":"t_rational_2500_by_1","typeString":"int_const 2500"},"value":"2500"},"src":"8159:16:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":58416,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8158:18:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_enum$_Operation_$60114","typeString":"enum Enum.Operation"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":58404,"name":"execute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59100,"src":"8106:7:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$60114_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)"}},"id":58419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8106:83:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8096:93:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":58421,"nodeType":"ExpressionStatement","src":"8096:93:78"},{"expression":{"id":58428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58422,"name":"gasUsed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58399,"src":"8203:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":58425,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"8225:7:78","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":58426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8225:9:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":58423,"name":"gasUsed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58399,"src":"8213:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":60444,"src":"8213:11:78","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":58427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8213:22:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8203:32:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58429,"nodeType":"ExpressionStatement","src":"8203:32:78"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":58439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":58435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58431,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58309,"src":"8519:7:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58432,"name":"safeTxGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58296,"src":"8530:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":58433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8543:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8530:14:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8519:25:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58436,"name":"gasPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58300,"src":"8548:8:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":58437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8560:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8548:13:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8519:42:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4753303133","id":58440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8563:7:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_99333b4627cde46d9c53d7148b33b8b1f4f065f5dceb2cb210893e67e551978e","typeString":"literal_string \"GS013\""},"value":"GS013"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_99333b4627cde46d9c53d7148b33b8b1f4f065f5dceb2cb210893e67e551978e","typeString":"literal_string \"GS013\""}],"id":58430,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8511:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":58441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8511:60:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58442,"nodeType":"ExpressionStatement","src":"8511:60:78"},{"assignments":[58444],"declarations":[{"constant":false,"id":58444,"mutability":"mutable","name":"payment","nameLocation":"8728:7:78","nodeType":"VariableDeclaration","scope":58474,"src":"8720:15:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58443,"name":"uint256","nodeType":"ElementaryTypeName","src":"8720:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":58446,"initialValue":{"hexValue":"30","id":58445,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8738:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8720:19:78"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58447,"name":"gasPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58300,"src":"8757:8:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":58448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8768:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8757:12:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":58461,"nodeType":"IfStatement","src":"8753:128:78","trueBody":{"id":58460,"nodeType":"Block","src":"8771:110:78","statements":[{"expression":{"id":58458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58450,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58444,"src":"8789:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":58452,"name":"gasUsed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58399,"src":"8813:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":58453,"name":"baseGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58298,"src":"8822:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":58454,"name":"gasPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58300,"src":"8831:8:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":58455,"name":"gasToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58302,"src":"8841:8:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58456,"name":"refundReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58304,"src":"8851:14:78","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":58451,"name":"handlePayment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58578,"src":"8799:13:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_address_payable_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256,address,address payable) returns (uint256)"}},"id":58457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8799:67:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8789:77:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58459,"nodeType":"ExpressionStatement","src":"8789:77:78"}]}},{"condition":{"id":58462,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58309,"src":"8898:7:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"eventCall":{"arguments":[{"id":58469,"name":"txHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58312,"src":"8986:6:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":58470,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58444,"src":"8994:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":58468,"name":"ExecutionFailure","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58191,"src":"8969:16:78","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":58471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8969:33:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58472,"nodeType":"EmitStatement","src":"8964:38:78"},"id":58473,"nodeType":"IfStatement","src":"8894:108:78","trueBody":{"eventCall":{"arguments":[{"id":58464,"name":"txHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58312,"src":"8929:6:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":58465,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58444,"src":"8937:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":58463,"name":"ExecutionSuccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58197,"src":"8912:16:78","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":58466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8912:33:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58467,"nodeType":"EmitStatement","src":"8907:38:78"}}]},{"id":58491,"nodeType":"Block","src":"9022:131:78","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":58480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58475,"name":"guard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58346,"src":"9040:5:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":58478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9057:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":58477,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9049:7:78","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58476,"name":"address","nodeType":"ElementaryTypeName","src":"9049:7:78","typeDescriptions":{}}},"id":58479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9049:10:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9040:19:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":58490,"nodeType":"IfStatement","src":"9036:107:78","trueBody":{"id":58489,"nodeType":"Block","src":"9061:82:78","statements":[{"expression":{"arguments":[{"id":58485,"name":"txHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58312,"src":"9112:6:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":58486,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58309,"src":"9120:7:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"arguments":[{"id":58482,"name":"guard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58346,"src":"9085:5:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":58481,"name":"Guard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59190,"src":"9079:5:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Guard_$59190_$","typeString":"type(contract Guard)"}},"id":58483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9079:12:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Guard_$59190","typeString":"contract Guard"}},"id":58484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"checkAfterExecution","nodeType":"MemberAccess","referencedDeclaration":59189,"src":"9079:32:78","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_bool_$returns$__$","typeString":"function (bytes32,bool) external"}},"id":58487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9079:49:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58488,"nodeType":"ExpressionStatement","src":"9079:49:78"}]}}]}]},"documentation":{"id":58285,"nodeType":"StructuredDocumentation","src":"4510:1016:78","text":"@dev Allows to execute a Safe transaction confirmed by required number of owners and then pays the account that submitted the transaction.\n      Note: The fees are always transferred, even if the user transaction fails.\n @param to Destination address of Safe transaction.\n @param value Ether value of Safe transaction.\n @param data Data payload of Safe transaction.\n @param operation Operation type of Safe transaction.\n @param safeTxGas Gas that should be used for the Safe transaction.\n @param baseGas Gas costs that are independent of the transaction execution(e.g. base transaction fee, signature check, payment of the refund)\n @param gasPrice Gas price that should be used for the payment calculation.\n @param gasToken Token address (or 0 if ETH) that is used for the payment.\n @param refundReceiver Address of receiver of gas payment (or 0 if tx.origin).\n @param signatures Packed signature data ({bytes32 r}{bytes32 s}{uint8 v})"},"functionSelector":"6a761202","implemented":true,"kind":"function","modifiers":[],"name":"execTransaction","nameLocation":"5540:15:78","parameters":{"id":58307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58287,"mutability":"mutable","name":"to","nameLocation":"5573:2:78","nodeType":"VariableDeclaration","scope":58493,"src":"5565:10:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58286,"name":"address","nodeType":"ElementaryTypeName","src":"5565:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58289,"mutability":"mutable","name":"value","nameLocation":"5593:5:78","nodeType":"VariableDeclaration","scope":58493,"src":"5585:13:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58288,"name":"uint256","nodeType":"ElementaryTypeName","src":"5585:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":58291,"mutability":"mutable","name":"data","nameLocation":"5623:4:78","nodeType":"VariableDeclaration","scope":58493,"src":"5608:19:78","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":58290,"name":"bytes","nodeType":"ElementaryTypeName","src":"5608:5:78","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":58294,"mutability":"mutable","name":"operation","nameLocation":"5652:9:78","nodeType":"VariableDeclaration","scope":58493,"src":"5637:24:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$60114","typeString":"enum Enum.Operation"},"typeName":{"id":58293,"nodeType":"UserDefinedTypeName","pathNode":{"id":58292,"name":"Enum.Operation","nodeType":"IdentifierPath","referencedDeclaration":60114,"src":"5637:14:78"},"referencedDeclaration":60114,"src":"5637:14:78","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$60114","typeString":"enum Enum.Operation"}},"visibility":"internal"},{"constant":false,"id":58296,"mutability":"mutable","name":"safeTxGas","nameLocation":"5679:9:78","nodeType":"VariableDeclaration","scope":58493,"src":"5671:17:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58295,"name":"uint256","nodeType":"ElementaryTypeName","src":"5671:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":58298,"mutability":"mutable","name":"baseGas","nameLocation":"5706:7:78","nodeType":"VariableDeclaration","scope":58493,"src":"5698:15:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58297,"name":"uint256","nodeType":"ElementaryTypeName","src":"5698:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":58300,"mutability":"mutable","name":"gasPrice","nameLocation":"5731:8:78","nodeType":"VariableDeclaration","scope":58493,"src":"5723:16:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58299,"name":"uint256","nodeType":"ElementaryTypeName","src":"5723:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":58302,"mutability":"mutable","name":"gasToken","nameLocation":"5757:8:78","nodeType":"VariableDeclaration","scope":58493,"src":"5749:16:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58301,"name":"address","nodeType":"ElementaryTypeName","src":"5749:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58304,"mutability":"mutable","name":"refundReceiver","nameLocation":"5791:14:78","nodeType":"VariableDeclaration","scope":58493,"src":"5775:30:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":58303,"name":"address","nodeType":"ElementaryTypeName","src":"5775:15:78","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":58306,"mutability":"mutable","name":"signatures","nameLocation":"5828:10:78","nodeType":"VariableDeclaration","scope":58493,"src":"5815:23:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":58305,"name":"bytes","nodeType":"ElementaryTypeName","src":"5815:5:78","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5555:289:78"},"returnParameters":{"id":58310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58309,"mutability":"mutable","name":"success","nameLocation":"5882:7:78","nodeType":"VariableDeclaration","scope":58493,"src":"5877:12:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":58308,"name":"bool","nodeType":"ElementaryTypeName","src":"5877:4:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5876:14:78"},"scope":59069,"stateMutability":"payable","virtual":true,"visibility":"public"},{"id":58578,"nodeType":"FunctionDefinition","src":"9165:821:78","nodes":[],"body":{"id":58577,"nodeType":"Block","src":"9370:616:78","nodes":[],"statements":[{"assignments":[58509],"declarations":[{"constant":false,"id":58509,"mutability":"mutable","name":"receiver","nameLocation":"9449:8:78","nodeType":"VariableDeclaration","scope":58577,"src":"9433:24:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":58508,"name":"address","nodeType":"ElementaryTypeName","src":"9433:15:78","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"id":58523,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":58515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58510,"name":"refundReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58503,"src":"9460:14:78","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":58513,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9486:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":58512,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9478:7:78","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58511,"name":"address","nodeType":"ElementaryTypeName","src":"9478:7:78","typeDescriptions":{}}},"id":58514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9478:10:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9460:28:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":58521,"name":"refundReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58503,"src":"9512:14:78","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":58522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"9460:66:78","trueExpression":{"arguments":[{"expression":{"id":58518,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"9499:2:78","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":58519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"origin","nodeType":"MemberAccess","src":"9499:9:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":58517,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9491:8:78","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":58516,"name":"address","nodeType":"ElementaryTypeName","src":"9491:8:78","stateMutability":"payable","typeDescriptions":{}}},"id":58520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9491:18:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"VariableDeclarationStatement","src":"9433:93:78"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":58529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58524,"name":"gasToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58501,"src":"9540:8:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":58527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9560:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":58526,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9552:7:78","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58525,"name":"address","nodeType":"ElementaryTypeName","src":"9552:7:78","typeDescriptions":{}}},"id":58528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9552:10:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9540:22:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":58575,"nodeType":"Block","src":"9837:143:78","statements":[{"expression":{"id":58564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58556,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58506,"src":"9851:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":58562,"name":"gasPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58499,"src":"9886:8:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":58559,"name":"baseGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58497,"src":"9873:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":58557,"name":"gasUsed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58495,"src":"9861:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":60469,"src":"9861:11:78","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":58560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9861:20:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":60419,"src":"9861:24:78","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":58563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9861:34:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9851:44:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58565,"nodeType":"ExpressionStatement","src":"9851:44:78"},{"expression":{"arguments":[{"arguments":[{"id":58568,"name":"gasToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58501,"src":"9931:8:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58569,"name":"receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58509,"src":"9941:8:78","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":58570,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58506,"src":"9951:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":58567,"name":"transferToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60163,"src":"9917:13:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) returns (bool)"}},"id":58571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9917:42:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4753303132","id":58572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9961:7:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_74edef16877c9a34a97f281dbea2805f9198008e7df330ab6416449a66143b07","typeString":"literal_string \"GS012\""},"value":"GS012"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_74edef16877c9a34a97f281dbea2805f9198008e7df330ab6416449a66143b07","typeString":"literal_string \"GS012\""}],"id":58566,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9909:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":58573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9909:60:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58574,"nodeType":"ExpressionStatement","src":"9909:60:78"}]},"id":58576,"nodeType":"IfStatement","src":"9536:444:78","trueBody":{"id":58555,"nodeType":"Block","src":"9564:267:78","statements":[{"expression":{"id":58545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58530,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58506,"src":"9683:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58536,"name":"gasPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58499,"src":"9718:8:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":58537,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"9729:2:78","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":58538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"gasprice","nodeType":"MemberAccess","src":"9729:11:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9718:22:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":58541,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"9754:2:78","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":58542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"gasprice","nodeType":"MemberAccess","src":"9754:11:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"9718:47:78","trueExpression":{"id":58540,"name":"gasPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58499,"src":"9743:8:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":58533,"name":"baseGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58497,"src":"9705:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":58531,"name":"gasUsed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58495,"src":"9693:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":60469,"src":"9693:11:78","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":58534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9693:20:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":60419,"src":"9693:24:78","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":58544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9693:73:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9683:83:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58546,"nodeType":"ExpressionStatement","src":"9683:83:78"},{"expression":{"arguments":[{"arguments":[{"id":58550,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58506,"src":"9802:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":58548,"name":"receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58509,"src":"9788:8:78","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":58549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"send","nodeType":"MemberAccess","src":"9788:13:78","typeDescriptions":{"typeIdentifier":"t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) returns (bool)"}},"id":58551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9788:22:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4753303131","id":58552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9812:7:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_4353e9bcd8ea99b4d56990ac4b8777f1ab67cada8356790f30e482f2408a44b0","typeString":"literal_string \"GS011\""},"value":"GS011"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4353e9bcd8ea99b4d56990ac4b8777f1ab67cada8356790f30e482f2408a44b0","typeString":"literal_string \"GS011\""}],"id":58547,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9780:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":58553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9780:40:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58554,"nodeType":"ExpressionStatement","src":"9780:40:78"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"handlePayment","nameLocation":"9174:13:78","parameters":{"id":58504,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58495,"mutability":"mutable","name":"gasUsed","nameLocation":"9205:7:78","nodeType":"VariableDeclaration","scope":58578,"src":"9197:15:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58494,"name":"uint256","nodeType":"ElementaryTypeName","src":"9197:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":58497,"mutability":"mutable","name":"baseGas","nameLocation":"9230:7:78","nodeType":"VariableDeclaration","scope":58578,"src":"9222:15:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58496,"name":"uint256","nodeType":"ElementaryTypeName","src":"9222:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":58499,"mutability":"mutable","name":"gasPrice","nameLocation":"9255:8:78","nodeType":"VariableDeclaration","scope":58578,"src":"9247:16:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58498,"name":"uint256","nodeType":"ElementaryTypeName","src":"9247:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":58501,"mutability":"mutable","name":"gasToken","nameLocation":"9281:8:78","nodeType":"VariableDeclaration","scope":58578,"src":"9273:16:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58500,"name":"address","nodeType":"ElementaryTypeName","src":"9273:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58503,"mutability":"mutable","name":"refundReceiver","nameLocation":"9315:14:78","nodeType":"VariableDeclaration","scope":58578,"src":"9299:30:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":58502,"name":"address","nodeType":"ElementaryTypeName","src":"9299:15:78","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"9187:148:78"},"returnParameters":{"id":58507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58506,"mutability":"mutable","name":"payment","nameLocation":"9361:7:78","nodeType":"VariableDeclaration","scope":58578,"src":"9353:15:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58505,"name":"uint256","nodeType":"ElementaryTypeName","src":"9353:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9352:17:78"},"scope":59069,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":58607,"nodeType":"FunctionDefinition","src":"10441:383:78","nodes":[],"body":{"id":58606,"nodeType":"Block","src":"10570:254:78","nodes":[],"statements":[{"assignments":[58589],"declarations":[{"constant":false,"id":58589,"mutability":"mutable","name":"_threshold","nameLocation":"10646:10:78","nodeType":"VariableDeclaration","scope":58606,"src":"10638:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58588,"name":"uint256","nodeType":"ElementaryTypeName","src":"10638:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":58591,"initialValue":{"id":58590,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59629,"src":"10659:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10638:30:78"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58593,"name":"_threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58589,"src":"10727:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":58594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10740:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10727:14:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4753303031","id":58596,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10743:7:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_93293a4a2e4cde533ea81b8912d8934c2d7892ceb975e9ad2c25f4abf449a730","typeString":"literal_string \"GS001\""},"value":"GS001"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_93293a4a2e4cde533ea81b8912d8934c2d7892ceb975e9ad2c25f4abf449a730","typeString":"literal_string \"GS001\""}],"id":58592,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10719:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":58597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10719:32:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58598,"nodeType":"ExpressionStatement","src":"10719:32:78"},{"expression":{"arguments":[{"id":58600,"name":"dataHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58581,"src":"10778:8:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":58601,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58583,"src":"10788:4:78","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":58602,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58585,"src":"10794:10:78","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":58603,"name":"_threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58589,"src":"10806:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":58599,"name":"checkNSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58848,"src":"10761:16:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (bytes32,bytes memory,bytes memory,uint256) view"}},"id":58604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10761:56:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58605,"nodeType":"ExpressionStatement","src":"10761:56:78"}]},"documentation":{"id":58579,"nodeType":"StructuredDocumentation","src":"9992:444:78","text":" @dev Checks whether the signature provided is valid for the provided data, hash. Will revert otherwise.\n @param dataHash Hash of the data (could be either a message hash or transaction hash)\n @param data That should be signed (this is passed to an external validator contract)\n @param signatures Signature data that should be verified. Can be ECDSA signature, contract signature (EIP-1271) or approved hash."},"functionSelector":"934f3a11","implemented":true,"kind":"function","modifiers":[],"name":"checkSignatures","nameLocation":"10450:15:78","parameters":{"id":58586,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58581,"mutability":"mutable","name":"dataHash","nameLocation":"10483:8:78","nodeType":"VariableDeclaration","scope":58607,"src":"10475:16:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":58580,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10475:7:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":58583,"mutability":"mutable","name":"data","nameLocation":"10514:4:78","nodeType":"VariableDeclaration","scope":58607,"src":"10501:17:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":58582,"name":"bytes","nodeType":"ElementaryTypeName","src":"10501:5:78","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":58585,"mutability":"mutable","name":"signatures","nameLocation":"10541:10:78","nodeType":"VariableDeclaration","scope":58607,"src":"10528:23:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":58584,"name":"bytes","nodeType":"ElementaryTypeName","src":"10528:5:78","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"10465:92:78"},"returnParameters":{"id":58587,"nodeType":"ParameterList","parameters":[],"src":"10570:0:78"},"scope":59069,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":58848,"nodeType":"FunctionDefinition","src":"11349:3812:78","nodes":[],"body":{"id":58847,"nodeType":"Block","src":"11515:3646:78","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":58620,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58614,"src":"11600:10:78","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":58621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"11600:17:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"arguments":[{"hexValue":"3635","id":58624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11644:2:78","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"65"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"}],"expression":{"id":58622,"name":"requiredSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58616,"src":"11621:18:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":60419,"src":"11621:22:78","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":58625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11621:26:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11600:47:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4753303230","id":58627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11649:7:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_f27dba96666375fe844b71e8ea4f388db2ce9f87fa9882d36a17036a7478b232","typeString":"literal_string \"GS020\""},"value":"GS020"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f27dba96666375fe844b71e8ea4f388db2ce9f87fa9882d36a17036a7478b232","typeString":"literal_string \"GS020\""}],"id":58619,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11592:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":58628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11592:65:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58629,"nodeType":"ExpressionStatement","src":"11592:65:78"},{"assignments":[58631],"declarations":[{"constant":false,"id":58631,"mutability":"mutable","name":"lastOwner","nameLocation":"11727:9:78","nodeType":"VariableDeclaration","scope":58847,"src":"11719:17:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58630,"name":"address","nodeType":"ElementaryTypeName","src":"11719:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":58636,"initialValue":{"arguments":[{"hexValue":"30","id":58634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11747:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":58633,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11739:7:78","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58632,"name":"address","nodeType":"ElementaryTypeName","src":"11739:7:78","typeDescriptions":{}}},"id":58635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11739:10:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"11719:30:78"},{"assignments":[58638],"declarations":[{"constant":false,"id":58638,"mutability":"mutable","name":"currentOwner","nameLocation":"11767:12:78","nodeType":"VariableDeclaration","scope":58847,"src":"11759:20:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58637,"name":"address","nodeType":"ElementaryTypeName","src":"11759:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":58639,"nodeType":"VariableDeclarationStatement","src":"11759:20:78"},{"assignments":[58641],"declarations":[{"constant":false,"id":58641,"mutability":"mutable","name":"v","nameLocation":"11795:1:78","nodeType":"VariableDeclaration","scope":58847,"src":"11789:7:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":58640,"name":"uint8","nodeType":"ElementaryTypeName","src":"11789:5:78","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":58642,"nodeType":"VariableDeclarationStatement","src":"11789:7:78"},{"assignments":[58644],"declarations":[{"constant":false,"id":58644,"mutability":"mutable","name":"r","nameLocation":"11814:1:78","nodeType":"VariableDeclaration","scope":58847,"src":"11806:9:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":58643,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11806:7:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":58645,"nodeType":"VariableDeclarationStatement","src":"11806:9:78"},{"assignments":[58647],"declarations":[{"constant":false,"id":58647,"mutability":"mutable","name":"s","nameLocation":"11833:1:78","nodeType":"VariableDeclaration","scope":58847,"src":"11825:9:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":58646,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11825:7:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":58648,"nodeType":"VariableDeclarationStatement","src":"11825:9:78"},{"assignments":[58650],"declarations":[{"constant":false,"id":58650,"mutability":"mutable","name":"i","nameLocation":"11852:1:78","nodeType":"VariableDeclaration","scope":58847,"src":"11844:9:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58649,"name":"uint256","nodeType":"ElementaryTypeName","src":"11844:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":58651,"nodeType":"VariableDeclarationStatement","src":"11844:9:78"},{"body":{"id":58845,"nodeType":"Block","src":"11904:3251:78","statements":[{"expression":{"id":58670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":58662,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58641,"src":"11919:1:78","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":58663,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58644,"src":"11922:1:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":58664,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58647,"src":"11925:1:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":58665,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"11918:9:78","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"tuple(uint8,bytes32,bytes32)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":58667,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58614,"src":"11945:10:78","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":58668,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58650,"src":"11957:1:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":58666,"name":"signatureSplit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60209,"src":"11930:14:78","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"function (bytes memory,uint256) pure returns (uint8,bytes32,bytes32)"}},"id":58669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11930:29:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"tuple(uint8,bytes32,bytes32)"}},"src":"11918:41:78","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58671,"nodeType":"ExpressionStatement","src":"11918:41:78"},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":58674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58672,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58641,"src":"11977:1:78","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":58673,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11982:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11977:6:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":58756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58754,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58641,"src":"13857:1:78","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":58755,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13862:1:78","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13857:6:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":58789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58787,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58641,"src":"14357:1:78","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3330","id":58788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14361:2:78","typeDescriptions":{"typeIdentifier":"t_rational_30_by_1","typeString":"int_const 30"},"value":"30"},"src":"14357:6:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":58817,"nodeType":"Block","src":"14752:226:78","statements":[{"expression":{"id":58815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58808,"name":"currentOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58638,"src":"14920:12:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":58810,"name":"dataHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58610,"src":"14945:8:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":58811,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58641,"src":"14955:1:78","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":58812,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58644,"src":"14958:1:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":58813,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58647,"src":"14961:1:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":58809,"name":"ecrecover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-6,"src":"14935:9:78","typeDescriptions":{"typeIdentifier":"t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":58814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14935:28:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14920:43:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":58816,"nodeType":"ExpressionStatement","src":"14920:43:78"}]},"id":58818,"nodeType":"IfStatement","src":"14353:625:78","trueBody":{"id":58807,"nodeType":"Block","src":"14365:381:78","statements":[{"expression":{"id":58805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58790,"name":"currentOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58638,"src":"14619:12:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"19457468657265756d205369676e6564204d6573736167653a0a3332","id":58795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14671:34:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73","typeString":"literal_string hex\"19457468657265756d205369676e6564204d6573736167653a0a3332\""},"value":"\u0019Ethereum Signed Message:\n32"},{"id":58796,"name":"dataHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58610,"src":"14707:8:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73","typeString":"literal_string hex\"19457468657265756d205369676e6564204d6573736167653a0a3332\""},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":58793,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14654:3:78","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":58794,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"14654:16:78","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":58797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14654:62:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":58792,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"14644:9:78","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":58798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14644:73:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":58801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58799,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58641,"src":"14719:1:78","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"34","id":58800,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14723:1:78","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"14719:5:78","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":58802,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58644,"src":"14726:1:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":58803,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58647,"src":"14729:1:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":58791,"name":"ecrecover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-6,"src":"14634:9:78","typeDescriptions":{"typeIdentifier":"t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":58804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14634:97:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14619:112:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":58806,"nodeType":"ExpressionStatement","src":"14619:112:78"}]}},"id":58819,"nodeType":"IfStatement","src":"13853:1125:78","trueBody":{"id":58786,"nodeType":"Block","src":"13865:482:78","statements":[{"expression":{"id":58768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58757,"name":"currentOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58638,"src":"14035:12:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":58764,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58644,"src":"14074:1:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":58763,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14066:7:78","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":58762,"name":"uint256","nodeType":"ElementaryTypeName","src":"14066:7:78","typeDescriptions":{}}},"id":58765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14066:10:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":58761,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14058:7:78","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":58760,"name":"uint160","nodeType":"ElementaryTypeName","src":"14058:7:78","typeDescriptions":{}}},"id":58766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14058:19:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":58759,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14050:7:78","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58758,"name":"address","nodeType":"ElementaryTypeName","src":"14050:7:78","typeDescriptions":{}}},"id":58767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14050:28:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14035:43:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":58769,"nodeType":"ExpressionStatement","src":"14035:43:78"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":58782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":58774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":58771,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14249:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":58772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"14249:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":58773,"name":"currentOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58638,"src":"14263:12:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14249:26:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":58775,"name":"approvedHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58211,"src":"14279:14:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_uint256_$_$","typeString":"mapping(address => mapping(bytes32 => uint256))"}},"id":58777,"indexExpression":{"id":58776,"name":"currentOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58638,"src":"14294:12:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14279:28:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":58779,"indexExpression":{"id":58778,"name":"dataHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58610,"src":"14308:8:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14279:38:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":58780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14321:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14279:43:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14249:73:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4753303235","id":58783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14324:7:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_bc2491dc7fc5c71a630e01bcb9c3e39f61f559ab54f6528d2adb67d65ed9ff6b","typeString":"literal_string \"GS025\""},"value":"GS025"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bc2491dc7fc5c71a630e01bcb9c3e39f61f559ab54f6528d2adb67d65ed9ff6b","typeString":"literal_string \"GS025\""}],"id":58770,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"14241:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":58784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14241:91:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58785,"nodeType":"ExpressionStatement","src":"14241:91:78"}]}},"id":58820,"nodeType":"IfStatement","src":"11973:3005:78","trueBody":{"id":58753,"nodeType":"Block","src":"11985:1862:78","statements":[{"expression":{"id":58686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58675,"name":"currentOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58638,"src":"12163:12:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":58682,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58644,"src":"12202:1:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":58681,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12194:7:78","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":58680,"name":"uint256","nodeType":"ElementaryTypeName","src":"12194:7:78","typeDescriptions":{}}},"id":58683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12194:10:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":58679,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12186:7:78","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":58678,"name":"uint160","nodeType":"ElementaryTypeName","src":"12186:7:78","typeDescriptions":{}}},"id":58684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12186:19:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":58677,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12178:7:78","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58676,"name":"address","nodeType":"ElementaryTypeName","src":"12178:7:78","typeDescriptions":{}}},"id":58685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12178:28:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12163:43:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":58687,"nodeType":"ExpressionStatement","src":"12163:43:78"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":58691,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58647,"src":"12601:1:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":58690,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12593:7:78","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":58689,"name":"uint256","nodeType":"ElementaryTypeName","src":"12593:7:78","typeDescriptions":{}}},"id":58692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12593:10:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"arguments":[{"hexValue":"3635","id":58695,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12630:2:78","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"65"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"}],"expression":{"id":58693,"name":"requiredSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58616,"src":"12607:18:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":60419,"src":"12607:22:78","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":58696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12607:26:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12593:40:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4753303231","id":58698,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12635:7:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_d153a9d5a0d4e2c2b7d4e887f02c1da6287d6d54f20f4d8ce40382a23140787a","typeString":"literal_string \"GS021\""},"value":"GS021"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d153a9d5a0d4e2c2b7d4e887f02c1da6287d6d54f20f4d8ce40382a23140787a","typeString":"literal_string \"GS021\""}],"id":58688,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12585:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":58699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12585:58:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58700,"nodeType":"ExpressionStatement","src":"12585:58:78"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"hexValue":"3332","id":58707,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12798:2:78","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"}],"expression":{"arguments":[{"id":58704,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58647,"src":"12791:1:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":58703,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12783:7:78","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":58702,"name":"uint256","nodeType":"ElementaryTypeName","src":"12783:7:78","typeDescriptions":{}}},"id":58705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12783:10:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":60469,"src":"12783:14:78","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":58708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12783:18:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":58709,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58614,"src":"12805:10:78","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":58710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"12805:17:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12783:39:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4753303232","id":58712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12824:7:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_372498b513e17609439d064ce0277017b054c808f722c83ff57cee4e06a9e457","typeString":"literal_string \"GS022\""},"value":"GS022"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_372498b513e17609439d064ce0277017b054c808f722c83ff57cee4e06a9e457","typeString":"literal_string \"GS022\""}],"id":58701,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12775:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":58713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12775:57:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58714,"nodeType":"ExpressionStatement","src":"12775:57:78"},{"assignments":[58716],"declarations":[{"constant":false,"id":58716,"mutability":"mutable","name":"contractSignatureLen","nameLocation":"12984:20:78","nodeType":"VariableDeclaration","scope":58753,"src":"12976:28:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58715,"name":"uint256","nodeType":"ElementaryTypeName","src":"12976:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":58717,"nodeType":"VariableDeclarationStatement","src":"12976:28:78"},{"AST":{"nodeType":"YulBlock","src":"13095:100:78","statements":[{"nodeType":"YulAssignment","src":"13117:60:78","value":{"arguments":[{"arguments":[{"arguments":[{"name":"signatures","nodeType":"YulIdentifier","src":"13155:10:78"},{"name":"s","nodeType":"YulIdentifier","src":"13167:1:78"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13151:3:78"},"nodeType":"YulFunctionCall","src":"13151:18:78"},{"kind":"number","nodeType":"YulLiteral","src":"13171:4:78","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13147:3:78"},"nodeType":"YulFunctionCall","src":"13147:29:78"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13141:5:78"},"nodeType":"YulFunctionCall","src":"13141:36:78"},"variableNames":[{"name":"contractSignatureLen","nodeType":"YulIdentifier","src":"13117:20:78"}]}]},"evmVersion":"london","externalReferences":[{"declaration":58716,"isOffset":false,"isSlot":false,"src":"13117:20:78","valueSize":1},{"declaration":58647,"isOffset":false,"isSlot":false,"src":"13167:1:78","valueSize":1},{"declaration":58614,"isOffset":false,"isSlot":false,"src":"13155:10:78","valueSize":1}],"id":58718,"nodeType":"InlineAssembly","src":"13086:109:78"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":58728,"name":"contractSignatureLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58716,"src":"13243:20:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"hexValue":"3332","id":58725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13235:2:78","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"}],"expression":{"arguments":[{"id":58722,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58647,"src":"13228:1:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":58721,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13220:7:78","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":58720,"name":"uint256","nodeType":"ElementaryTypeName","src":"13220:7:78","typeDescriptions":{}}},"id":58723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13220:10:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":60469,"src":"13220:14:78","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":58726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13220:18:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":60469,"src":"13220:22:78","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":58729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13220:44:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":58730,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58614,"src":"13268:10:78","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":58731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"13268:17:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13220:65:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4753303233","id":58733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13287:7:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_00aecc0fa22d38afc0f465808a9fee188ba139fb53b2ca550ea01d91d6ecf29f","typeString":"literal_string \"GS023\""},"value":"GS023"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_00aecc0fa22d38afc0f465808a9fee188ba139fb53b2ca550ea01d91d6ecf29f","typeString":"literal_string \"GS023\""}],"id":58719,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13212:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":58734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13212:83:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58735,"nodeType":"ExpressionStatement","src":"13212:83:78"},{"assignments":[58737],"declarations":[{"constant":false,"id":58737,"mutability":"mutable","name":"contractSignature","nameLocation":"13362:17:78","nodeType":"VariableDeclaration","scope":58753,"src":"13349:30:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":58736,"name":"bytes","nodeType":"ElementaryTypeName","src":"13349:5:78","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":58738,"nodeType":"VariableDeclarationStatement","src":"13349:30:78"},{"AST":{"nodeType":"YulBlock","src":"13470:229:78","statements":[{"nodeType":"YulAssignment","src":"13631:50:78","value":{"arguments":[{"arguments":[{"name":"signatures","nodeType":"YulIdentifier","src":"13660:10:78"},{"name":"s","nodeType":"YulIdentifier","src":"13672:1:78"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13656:3:78"},"nodeType":"YulFunctionCall","src":"13656:18:78"},{"kind":"number","nodeType":"YulLiteral","src":"13676:4:78","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13652:3:78"},"nodeType":"YulFunctionCall","src":"13652:29:78"},"variableNames":[{"name":"contractSignature","nodeType":"YulIdentifier","src":"13631:17:78"}]}]},"evmVersion":"london","externalReferences":[{"declaration":58737,"isOffset":false,"isSlot":false,"src":"13631:17:78","valueSize":1},{"declaration":58647,"isOffset":false,"isSlot":false,"src":"13672:1:78","valueSize":1},{"declaration":58614,"isOffset":false,"isSlot":false,"src":"13660:10:78","valueSize":1}],"id":58739,"nodeType":"InlineAssembly","src":"13461:238:78"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":58749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":58745,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58612,"src":"13775:4:78","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":58746,"name":"contractSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58737,"src":"13781:17:78","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":58742,"name":"currentOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58638,"src":"13744:12:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":58741,"name":"ISignatureValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60593,"src":"13724:19:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISignatureValidator_$60593_$","typeString":"type(contract ISignatureValidator)"}},"id":58743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13724:33:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ISignatureValidator_$60593","typeString":"contract ISignatureValidator"}},"id":58744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isValidSignature","nodeType":"MemberAccess","referencedDeclaration":60592,"src":"13724:50:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (bytes memory,bytes memory) view external returns (bytes4)"}},"id":58747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13724:75:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":58748,"name":"EIP1271_MAGIC_VALUE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60579,"src":"13803:19:78","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"13724:98:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4753303234","id":58750,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13824:7:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_1d9dfad0f7e80ccb3a898324566cbd9ed8451678d229622c4c1b5f1f19330139","typeString":"literal_string \"GS024\""},"value":"GS024"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1d9dfad0f7e80ccb3a898324566cbd9ed8451678d229622c4c1b5f1f19330139","typeString":"literal_string \"GS024\""}],"id":58740,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13716:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":58751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13716:116:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58752,"nodeType":"ExpressionStatement","src":"13716:116:78"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":58837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":58833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":58824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58822,"name":"currentOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58638,"src":"14999:12:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":58823,"name":"lastOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58631,"src":"15014:9:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14999:24:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":58832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":58825,"name":"owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59625,"src":"15027:6:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":58827,"indexExpression":{"id":58826,"name":"currentOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58638,"src":"15034:12:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15027:20:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":58830,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15059:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":58829,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15051:7:78","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58828,"name":"address","nodeType":"ElementaryTypeName","src":"15051:7:78","typeDescriptions":{}}},"id":58831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15051:10:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15027:34:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14999:62:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":58836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58834,"name":"currentOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58638,"src":"15065:12:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":58835,"name":"SENTINEL_OWNERS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59621,"src":"15081:15:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15065:31:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14999:97:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4753303236","id":58838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15098:7:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_14032cc06a7a2043c1b961d6b7d6cbfaea1511224ce5ca723af49fa68e55c159","typeString":"literal_string \"GS026\""},"value":"GS026"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_14032cc06a7a2043c1b961d6b7d6cbfaea1511224ce5ca723af49fa68e55c159","typeString":"literal_string \"GS026\""}],"id":58821,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"14991:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":58839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14991:115:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58840,"nodeType":"ExpressionStatement","src":"14991:115:78"},{"expression":{"id":58843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58841,"name":"lastOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58631,"src":"15120:9:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":58842,"name":"currentOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58638,"src":"15132:12:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15120:24:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":58844,"nodeType":"ExpressionStatement","src":"15120:24:78"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58656,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58650,"src":"11875:1:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":58657,"name":"requiredSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58616,"src":"11879:18:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11875:22:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":58846,"initializationExpression":{"expression":{"id":58654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58652,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58650,"src":"11868:1:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":58653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11872:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11868:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58655,"nodeType":"ExpressionStatement","src":"11868:5:78"},"loopExpression":{"expression":{"id":58660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"11899:3:78","subExpression":{"id":58659,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58650,"src":"11899:1:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58661,"nodeType":"ExpressionStatement","src":"11899:3:78"},"nodeType":"ForStatement","src":"11863:3292:78"}]},"documentation":{"id":58608,"nodeType":"StructuredDocumentation","src":"10830:514:78","text":" @dev Checks whether the signature provided is valid for the provided data, hash. Will revert otherwise.\n @param dataHash Hash of the data (could be either a message hash or transaction hash)\n @param data That should be signed (this is passed to an external validator contract)\n @param signatures Signature data that should be verified. Can be ECDSA signature, contract signature (EIP-1271) or approved hash.\n @param requiredSignatures Amount of required valid signatures."},"functionSelector":"12fb68e0","implemented":true,"kind":"function","modifiers":[],"name":"checkNSignatures","nameLocation":"11358:16:78","parameters":{"id":58617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58610,"mutability":"mutable","name":"dataHash","nameLocation":"11392:8:78","nodeType":"VariableDeclaration","scope":58848,"src":"11384:16:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":58609,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11384:7:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":58612,"mutability":"mutable","name":"data","nameLocation":"11423:4:78","nodeType":"VariableDeclaration","scope":58848,"src":"11410:17:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":58611,"name":"bytes","nodeType":"ElementaryTypeName","src":"11410:5:78","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":58614,"mutability":"mutable","name":"signatures","nameLocation":"11450:10:78","nodeType":"VariableDeclaration","scope":58848,"src":"11437:23:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":58613,"name":"bytes","nodeType":"ElementaryTypeName","src":"11437:5:78","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":58616,"mutability":"mutable","name":"requiredSignatures","nameLocation":"11478:18:78","nodeType":"VariableDeclaration","scope":58848,"src":"11470:26:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58615,"name":"uint256","nodeType":"ElementaryTypeName","src":"11470:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11374:128:78"},"returnParameters":{"id":58618,"nodeType":"ParameterList","parameters":[],"src":"11515:0:78"},"scope":59069,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":58897,"nodeType":"FunctionDefinition","src":"15970:533:78","nodes":[],"body":{"id":58896,"nodeType":"Block","src":"16132:371:78","nodes":[],"statements":[{"assignments":[58864],"declarations":[{"constant":false,"id":58864,"mutability":"mutable","name":"startGas","nameLocation":"16150:8:78","nodeType":"VariableDeclaration","scope":58896,"src":"16142:16:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58863,"name":"uint256","nodeType":"ElementaryTypeName","src":"16142:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":58867,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":58865,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"16161:7:78","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":58866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16161:9:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16142:28:78"},{"expression":{"arguments":[{"arguments":[{"id":58870,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58851,"src":"16283:2:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58871,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58853,"src":"16287:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":58872,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58855,"src":"16294:4:78","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":58873,"name":"operation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58858,"src":"16300:9:78","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$60114","typeString":"enum Enum.Operation"}},{"arguments":[],"expression":{"argumentTypes":[],"id":58874,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"16311:7:78","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":58875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16311:9:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_enum$_Operation_$60114","typeString":"enum Enum.Operation"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":58869,"name":"execute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59100,"src":"16275:7:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$60114_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)"}},"id":58876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16275:46:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":58868,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"16267:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":58877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16267:55:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58878,"nodeType":"ExpressionStatement","src":"16267:55:78"},{"assignments":[58880],"declarations":[{"constant":false,"id":58880,"mutability":"mutable","name":"requiredGas","nameLocation":"16340:11:78","nodeType":"VariableDeclaration","scope":58896,"src":"16332:19:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58879,"name":"uint256","nodeType":"ElementaryTypeName","src":"16332:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":58885,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58881,"name":"startGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58864,"src":"16354:8:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":58882,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"16365:7:78","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":58883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16365:9:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16354:20:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16332:42:78"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":58891,"name":"requiredGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58880,"src":"16482:11:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":58889,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16465:3:78","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":58890,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"16465:16:78","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":58892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16465:29:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":58888,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16458:6:78","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":58887,"name":"string","nodeType":"ElementaryTypeName","src":"16458:6:78","typeDescriptions":{}}},"id":58893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16458:37:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":58886,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"16451:6:78","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":58894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16451:45:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58895,"nodeType":"ExpressionStatement","src":"16451:45:78"}]},"documentation":{"id":58849,"nodeType":"StructuredDocumentation","src":"15167:798:78","text":"@dev Allows to estimate a Safe transaction.\n      This method is only meant for estimation purpose, therefore the call will always revert and encode the result in the revert data.\n      Since the `estimateGas` function includes refunds, call this method to get an estimated of the costs that are deducted from the safe with `execTransaction`\n @param to Destination address of Safe transaction.\n @param value Ether value of Safe transaction.\n @param data Data payload of Safe transaction.\n @param operation Operation type of Safe transaction.\n @return Estimate without refunds and overhead fees (base transaction and payload data gas costs).\n @notice Deprecated in favor of common/StorageAccessible.sol and will be removed in next version."},"functionSelector":"c4ca3a9c","implemented":true,"kind":"function","modifiers":[],"name":"requiredTxGas","nameLocation":"15979:13:78","parameters":{"id":58859,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58851,"mutability":"mutable","name":"to","nameLocation":"16010:2:78","nodeType":"VariableDeclaration","scope":58897,"src":"16002:10:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58850,"name":"address","nodeType":"ElementaryTypeName","src":"16002:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58853,"mutability":"mutable","name":"value","nameLocation":"16030:5:78","nodeType":"VariableDeclaration","scope":58897,"src":"16022:13:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58852,"name":"uint256","nodeType":"ElementaryTypeName","src":"16022:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":58855,"mutability":"mutable","name":"data","nameLocation":"16060:4:78","nodeType":"VariableDeclaration","scope":58897,"src":"16045:19:78","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":58854,"name":"bytes","nodeType":"ElementaryTypeName","src":"16045:5:78","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":58858,"mutability":"mutable","name":"operation","nameLocation":"16089:9:78","nodeType":"VariableDeclaration","scope":58897,"src":"16074:24:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$60114","typeString":"enum Enum.Operation"},"typeName":{"id":58857,"nodeType":"UserDefinedTypeName","pathNode":{"id":58856,"name":"Enum.Operation","nodeType":"IdentifierPath","referencedDeclaration":60114,"src":"16074:14:78"},"referencedDeclaration":60114,"src":"16074:14:78","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$60114","typeString":"enum Enum.Operation"}},"visibility":"internal"}],"src":"15992:112:78"},"returnParameters":{"id":58862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58861,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":58897,"src":"16123:7:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58860,"name":"uint256","nodeType":"ElementaryTypeName","src":"16123:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16122:9:78"},"scope":59069,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":58932,"nodeType":"FunctionDefinition","src":"16750:228:78","nodes":[],"body":{"id":58931,"nodeType":"Block","src":"16803:175:78","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":58912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":58904,"name":"owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59625,"src":"16821:6:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":58907,"indexExpression":{"expression":{"id":58905,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16828:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":58906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"16828:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16821:18:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":58910,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16851:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":58909,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16843:7:78","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58908,"name":"address","nodeType":"ElementaryTypeName","src":"16843:7:78","typeDescriptions":{}}},"id":58911,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16843:10:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16821:32:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4753303330","id":58913,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16855:7:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_26b7fa7d947085035b53de5c25693e568c405e1e894ad22389a1528045f35ba8","typeString":"literal_string \"GS030\""},"value":"GS030"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_26b7fa7d947085035b53de5c25693e568c405e1e894ad22389a1528045f35ba8","typeString":"literal_string \"GS030\""}],"id":58903,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"16813:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":58914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16813:50:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58915,"nodeType":"ExpressionStatement","src":"16813:50:78"},{"expression":{"id":58923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":58916,"name":"approvedHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58211,"src":"16873:14:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_uint256_$_$","typeString":"mapping(address => mapping(bytes32 => uint256))"}},"id":58920,"indexExpression":{"expression":{"id":58917,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16888:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":58918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"16888:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16873:26:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":58921,"indexExpression":{"id":58919,"name":"hashToApprove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58900,"src":"16900:13:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"16873:41:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":58922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16917:1:78","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"16873:45:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58924,"nodeType":"ExpressionStatement","src":"16873:45:78"},{"eventCall":{"arguments":[{"id":58926,"name":"hashToApprove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58900,"src":"16945:13:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":58927,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16960:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":58928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"16960:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":58925,"name":"ApproveHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58181,"src":"16933:11:78","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":58929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16933:38:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58930,"nodeType":"EmitStatement","src":"16928:43:78"}]},"documentation":{"id":58898,"nodeType":"StructuredDocumentation","src":"16509:236:78","text":" @dev Marks a hash as approved. This can be used to validate a hash that is used by a signature.\n @param hashToApprove The hash that should be marked as approved for signatures that are verified by this contract."},"functionSelector":"d4d9bdcd","implemented":true,"kind":"function","modifiers":[],"name":"approveHash","nameLocation":"16759:11:78","parameters":{"id":58901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58900,"mutability":"mutable","name":"hashToApprove","nameLocation":"16779:13:78","nodeType":"VariableDeclaration","scope":58932,"src":"16771:21:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":58899,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16771:7:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16770:23:78"},"returnParameters":{"id":58902,"nodeType":"ParameterList","parameters":[],"src":"16803:0:78"},"scope":59069,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":58945,"nodeType":"FunctionDefinition","src":"17041:211:78","nodes":[],"body":{"id":58944,"nodeType":"Block","src":"17093:159:78","nodes":[],"statements":[{"assignments":[58939],"declarations":[{"constant":false,"id":58939,"mutability":"mutable","name":"id","nameLocation":"17111:2:78","nodeType":"VariableDeclaration","scope":58944,"src":"17103:10:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58938,"name":"uint256","nodeType":"ElementaryTypeName","src":"17103:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":58940,"nodeType":"VariableDeclarationStatement","src":"17103:10:78"},{"AST":{"nodeType":"YulBlock","src":"17188:39:78","statements":[{"nodeType":"YulAssignment","src":"17202:15:78","value":{"arguments":[],"functionName":{"name":"chainid","nodeType":"YulIdentifier","src":"17208:7:78"},"nodeType":"YulFunctionCall","src":"17208:9:78"},"variableNames":[{"name":"id","nodeType":"YulIdentifier","src":"17202:2:78"}]}]},"evmVersion":"london","externalReferences":[{"declaration":58939,"isOffset":false,"isSlot":false,"src":"17202:2:78","valueSize":1}],"id":58941,"nodeType":"InlineAssembly","src":"17179:48:78"},{"expression":{"id":58942,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58939,"src":"17243:2:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":58937,"id":58943,"nodeType":"Return","src":"17236:9:78"}]},"documentation":{"id":58933,"nodeType":"StructuredDocumentation","src":"16984:52:78","text":"@dev Returns the chain id used by this contract."},"functionSelector":"3408e470","implemented":true,"kind":"function","modifiers":[],"name":"getChainId","nameLocation":"17050:10:78","parameters":{"id":58934,"nodeType":"ParameterList","parameters":[],"src":"17060:2:78"},"returnParameters":{"id":58937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58936,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":58945,"src":"17084:7:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58935,"name":"uint256","nodeType":"ElementaryTypeName","src":"17084:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17083:9:78"},"scope":59069,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":58961,"nodeType":"FunctionDefinition","src":"17258:149:78","nodes":[],"body":{"id":58960,"nodeType":"Block","src":"17315:92:78","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":58953,"name":"DOMAIN_SEPARATOR_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58159,"src":"17353:25:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":58954,"name":"getChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58945,"src":"17380:10:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":58955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17380:12:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":58956,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"17394:4:78","typeDescriptions":{"typeIdentifier":"t_contract$_GnosisSafe_$59069","typeString":"contract GnosisSafe"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_contract$_GnosisSafe_$59069","typeString":"contract GnosisSafe"}],"expression":{"id":58951,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17342:3:78","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":58952,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"17342:10:78","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":58957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17342:57:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":58950,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"17332:9:78","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":58958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17332:68:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":58949,"id":58959,"nodeType":"Return","src":"17325:75:78"}]},"functionSelector":"f698da25","implemented":true,"kind":"function","modifiers":[],"name":"domainSeparator","nameLocation":"17267:15:78","parameters":{"id":58946,"nodeType":"ParameterList","parameters":[],"src":"17282:2:78"},"returnParameters":{"id":58949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58948,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":58961,"src":"17306:7:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":58947,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17306:7:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17305:9:78"},"scope":59069,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":59025,"nodeType":"FunctionDefinition","src":"18194:890:78","nodes":[],"body":{"id":59024,"nodeType":"Block","src":"18532:552:78","nodes":[],"statements":[{"assignments":[58989],"declarations":[{"constant":false,"id":58989,"mutability":"mutable","name":"safeTxHash","nameLocation":"18550:10:78","nodeType":"VariableDeclaration","scope":59024,"src":"18542:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":58988,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18542:7:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":59008,"initialValue":{"arguments":[{"arguments":[{"id":58993,"name":"SAFE_TX_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58162,"src":"18634:16:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":58994,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58964,"src":"18672:2:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58995,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58966,"src":"18696:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":58997,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58968,"src":"18733:4:78","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":58996,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"18723:9:78","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":58998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18723:15:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":58999,"name":"operation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58971,"src":"18760:9:78","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$60114","typeString":"enum Enum.Operation"}},{"id":59000,"name":"safeTxGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58973,"src":"18791:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":59001,"name":"baseGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58975,"src":"18822:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":59002,"name":"gasPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58977,"src":"18851:8:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":59003,"name":"gasToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58979,"src":"18881:8:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":59004,"name":"refundReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58981,"src":"18911:14:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":59005,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58983,"src":"18947:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_enum$_Operation_$60114","typeString":"enum Enum.Operation"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":58991,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18602:3:78","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":58992,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"18602:10:78","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":59006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18602:369:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":58990,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"18575:9:78","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":59007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18575:410:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"18542:443:78"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30783139","id":59013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19026:4:78","typeDescriptions":{"typeIdentifier":"t_rational_25_by_1","typeString":"int_const 25"},"value":"0x19"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_25_by_1","typeString":"int_const 25"}],"id":59012,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19019:6:78","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":59011,"name":"bytes1","nodeType":"ElementaryTypeName","src":"19019:6:78","typeDescriptions":{}}},"id":59014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19019:12:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},{"arguments":[{"hexValue":"30783031","id":59017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19040:4:78","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x01"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":59016,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19033:6:78","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":59015,"name":"bytes1","nodeType":"ElementaryTypeName","src":"19033:6:78","typeDescriptions":{}}},"id":59018,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19033:12:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},{"arguments":[],"expression":{"argumentTypes":[],"id":59019,"name":"domainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58961,"src":"19047:15:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":59020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19047:17:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":59021,"name":"safeTxHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58989,"src":"19066:10:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"},{"typeIdentifier":"t_bytes1","typeString":"bytes1"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":59009,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19002:3:78","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":59010,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"19002:16:78","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":59022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19002:75:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":58987,"id":59023,"nodeType":"Return","src":"18995:82:78"}]},"documentation":{"id":58962,"nodeType":"StructuredDocumentation","src":"17413:776:78","text":"@dev Returns the bytes that are hashed to be signed by owners.\n @param to Destination address.\n @param value Ether value.\n @param data Data payload.\n @param operation Operation type.\n @param safeTxGas Gas that should be used for the safe transaction.\n @param baseGas Gas costs for that are independent of the transaction execution(e.g. base transaction fee, signature check, payment of the refund)\n @param gasPrice Maximum gas price that should be used for this transaction.\n @param gasToken Token address (or 0 if ETH) that is used for the payment.\n @param refundReceiver Address of receiver of gas payment (or 0 if tx.origin).\n @param _nonce Transaction nonce.\n @return Transaction hash bytes."},"functionSelector":"e86637db","implemented":true,"kind":"function","modifiers":[],"name":"encodeTransactionData","nameLocation":"18203:21:78","parameters":{"id":58984,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58964,"mutability":"mutable","name":"to","nameLocation":"18242:2:78","nodeType":"VariableDeclaration","scope":59025,"src":"18234:10:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58963,"name":"address","nodeType":"ElementaryTypeName","src":"18234:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58966,"mutability":"mutable","name":"value","nameLocation":"18262:5:78","nodeType":"VariableDeclaration","scope":59025,"src":"18254:13:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58965,"name":"uint256","nodeType":"ElementaryTypeName","src":"18254:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":58968,"mutability":"mutable","name":"data","nameLocation":"18292:4:78","nodeType":"VariableDeclaration","scope":59025,"src":"18277:19:78","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":58967,"name":"bytes","nodeType":"ElementaryTypeName","src":"18277:5:78","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":58971,"mutability":"mutable","name":"operation","nameLocation":"18321:9:78","nodeType":"VariableDeclaration","scope":59025,"src":"18306:24:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$60114","typeString":"enum Enum.Operation"},"typeName":{"id":58970,"nodeType":"UserDefinedTypeName","pathNode":{"id":58969,"name":"Enum.Operation","nodeType":"IdentifierPath","referencedDeclaration":60114,"src":"18306:14:78"},"referencedDeclaration":60114,"src":"18306:14:78","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$60114","typeString":"enum Enum.Operation"}},"visibility":"internal"},{"constant":false,"id":58973,"mutability":"mutable","name":"safeTxGas","nameLocation":"18348:9:78","nodeType":"VariableDeclaration","scope":59025,"src":"18340:17:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58972,"name":"uint256","nodeType":"ElementaryTypeName","src":"18340:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":58975,"mutability":"mutable","name":"baseGas","nameLocation":"18375:7:78","nodeType":"VariableDeclaration","scope":59025,"src":"18367:15:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58974,"name":"uint256","nodeType":"ElementaryTypeName","src":"18367:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":58977,"mutability":"mutable","name":"gasPrice","nameLocation":"18400:8:78","nodeType":"VariableDeclaration","scope":59025,"src":"18392:16:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58976,"name":"uint256","nodeType":"ElementaryTypeName","src":"18392:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":58979,"mutability":"mutable","name":"gasToken","nameLocation":"18426:8:78","nodeType":"VariableDeclaration","scope":59025,"src":"18418:16:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58978,"name":"address","nodeType":"ElementaryTypeName","src":"18418:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58981,"mutability":"mutable","name":"refundReceiver","nameLocation":"18452:14:78","nodeType":"VariableDeclaration","scope":59025,"src":"18444:22:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58980,"name":"address","nodeType":"ElementaryTypeName","src":"18444:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58983,"mutability":"mutable","name":"_nonce","nameLocation":"18484:6:78","nodeType":"VariableDeclaration","scope":59025,"src":"18476:14:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58982,"name":"uint256","nodeType":"ElementaryTypeName","src":"18476:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18224:272:78"},"returnParameters":{"id":58987,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58986,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":59025,"src":"18518:12:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":58985,"name":"bytes","nodeType":"ElementaryTypeName","src":"18518:5:78","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"18517:14:78"},"scope":59069,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":59068,"nodeType":"FunctionDefinition","src":"19770:478:78","nodes":[],"body":{"id":59067,"nodeType":"Block","src":"20100:148:78","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":59054,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59028,"src":"20149:2:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":59055,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59030,"src":"20153:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":59056,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59032,"src":"20160:4:78","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":59057,"name":"operation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59035,"src":"20166:9:78","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$60114","typeString":"enum Enum.Operation"}},{"id":59058,"name":"safeTxGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59037,"src":"20177:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":59059,"name":"baseGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59039,"src":"20188:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":59060,"name":"gasPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59041,"src":"20197:8:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":59061,"name":"gasToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59043,"src":"20207:8:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":59062,"name":"refundReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59045,"src":"20217:14:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":59063,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59047,"src":"20233:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_enum$_Operation_$60114","typeString":"enum Enum.Operation"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":59053,"name":"encodeTransactionData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59025,"src":"20127:21:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$_t_enum$_Operation_$60114_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,uint256,bytes calldata,enum Enum.Operation,uint256,uint256,uint256,address,address,uint256) view returns (bytes memory)"}},"id":59064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20127:113:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":59052,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"20117:9:78","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":59065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20117:124:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":59051,"id":59066,"nodeType":"Return","src":"20110:131:78"}]},"documentation":{"id":59026,"nodeType":"StructuredDocumentation","src":"19090:675:78","text":"@dev Returns hash to be signed by owners.\n @param to Destination address.\n @param value Ether value.\n @param data Data payload.\n @param operation Operation type.\n @param safeTxGas Fas that should be used for the safe transaction.\n @param baseGas Gas costs for data used to trigger the safe transaction.\n @param gasPrice Maximum gas price that should be used for this transaction.\n @param gasToken Token address (or 0 if ETH) that is used for the payment.\n @param refundReceiver Address of receiver of gas payment (or 0 if tx.origin).\n @param _nonce Transaction nonce.\n @return Transaction hash."},"functionSelector":"d8d11f78","implemented":true,"kind":"function","modifiers":[],"name":"getTransactionHash","nameLocation":"19779:18:78","parameters":{"id":59048,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59028,"mutability":"mutable","name":"to","nameLocation":"19815:2:78","nodeType":"VariableDeclaration","scope":59068,"src":"19807:10:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59027,"name":"address","nodeType":"ElementaryTypeName","src":"19807:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":59030,"mutability":"mutable","name":"value","nameLocation":"19835:5:78","nodeType":"VariableDeclaration","scope":59068,"src":"19827:13:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59029,"name":"uint256","nodeType":"ElementaryTypeName","src":"19827:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":59032,"mutability":"mutable","name":"data","nameLocation":"19865:4:78","nodeType":"VariableDeclaration","scope":59068,"src":"19850:19:78","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":59031,"name":"bytes","nodeType":"ElementaryTypeName","src":"19850:5:78","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":59035,"mutability":"mutable","name":"operation","nameLocation":"19894:9:78","nodeType":"VariableDeclaration","scope":59068,"src":"19879:24:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$60114","typeString":"enum Enum.Operation"},"typeName":{"id":59034,"nodeType":"UserDefinedTypeName","pathNode":{"id":59033,"name":"Enum.Operation","nodeType":"IdentifierPath","referencedDeclaration":60114,"src":"19879:14:78"},"referencedDeclaration":60114,"src":"19879:14:78","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$60114","typeString":"enum Enum.Operation"}},"visibility":"internal"},{"constant":false,"id":59037,"mutability":"mutable","name":"safeTxGas","nameLocation":"19921:9:78","nodeType":"VariableDeclaration","scope":59068,"src":"19913:17:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59036,"name":"uint256","nodeType":"ElementaryTypeName","src":"19913:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":59039,"mutability":"mutable","name":"baseGas","nameLocation":"19948:7:78","nodeType":"VariableDeclaration","scope":59068,"src":"19940:15:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59038,"name":"uint256","nodeType":"ElementaryTypeName","src":"19940:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":59041,"mutability":"mutable","name":"gasPrice","nameLocation":"19973:8:78","nodeType":"VariableDeclaration","scope":59068,"src":"19965:16:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59040,"name":"uint256","nodeType":"ElementaryTypeName","src":"19965:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":59043,"mutability":"mutable","name":"gasToken","nameLocation":"19999:8:78","nodeType":"VariableDeclaration","scope":59068,"src":"19991:16:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59042,"name":"address","nodeType":"ElementaryTypeName","src":"19991:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":59045,"mutability":"mutable","name":"refundReceiver","nameLocation":"20025:14:78","nodeType":"VariableDeclaration","scope":59068,"src":"20017:22:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59044,"name":"address","nodeType":"ElementaryTypeName","src":"20017:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":59047,"mutability":"mutable","name":"_nonce","nameLocation":"20057:6:78","nodeType":"VariableDeclaration","scope":59068,"src":"20049:14:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59046,"name":"uint256","nodeType":"ElementaryTypeName","src":"20049:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19797:272:78"},"returnParameters":{"id":59051,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59050,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":59068,"src":"20091:7:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":59049,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20091:7:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20090:9:78"},"scope":59069,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":58131,"name":"EtherPaymentFallback","nodeType":"IdentifierPath","referencedDeclaration":60137,"src":"749:20:78"},"id":58132,"nodeType":"InheritanceSpecifier","src":"749:20:78"},{"baseName":{"id":58133,"name":"Singleton","nodeType":"IdentifierPath","referencedDeclaration":60216,"src":"775:9:78"},"id":58134,"nodeType":"InheritanceSpecifier","src":"775:9:78"},{"baseName":{"id":58135,"name":"ModuleManager","nodeType":"IdentifierPath","referencedDeclaration":59597,"src":"790:13:78"},"id":58136,"nodeType":"InheritanceSpecifier","src":"790:13:78"},{"baseName":{"id":58137,"name":"OwnerManager","nodeType":"IdentifierPath","referencedDeclaration":60108,"src":"809:12:78"},"id":58138,"nodeType":"InheritanceSpecifier","src":"809:12:78"},{"baseName":{"id":58139,"name":"SignatureDecoder","nodeType":"IdentifierPath","referencedDeclaration":60210,"src":"827:16:78"},"id":58140,"nodeType":"InheritanceSpecifier","src":"827:16:78"},{"baseName":{"id":58141,"name":"SecuredTokenTransfer","nodeType":"IdentifierPath","referencedDeclaration":60164,"src":"849:20:78"},"id":58142,"nodeType":"InheritanceSpecifier","src":"849:20:78"},{"baseName":{"id":58143,"name":"ISignatureValidatorConstants","nodeType":"IdentifierPath","referencedDeclaration":60580,"src":"875:28:78"},"id":58144,"nodeType":"InheritanceSpecifier","src":"875:28:78"},{"baseName":{"id":58145,"name":"FallbackManager","nodeType":"IdentifierPath","referencedDeclaration":59152,"src":"909:15:78"},"id":58146,"nodeType":"InheritanceSpecifier","src":"909:15:78"},{"baseName":{"id":58147,"name":"StorageAccessible","nodeType":"IdentifierPath","referencedDeclaration":60265,"src":"930:17:78"},"id":58148,"nodeType":"InheritanceSpecifier","src":"930:17:78"},{"baseName":{"id":58149,"name":"GuardManager","nodeType":"IdentifierPath","referencedDeclaration":59230,"src":"953:12:78"},"id":58150,"nodeType":"InheritanceSpecifier","src":"953:12:78"}],"canonicalName":"GnosisSafe","contractDependencies":[],"contractKind":"contract","documentation":{"id":58130,"nodeType":"StructuredDocumentation","src":"505:217:78","text":"@title Gnosis Safe - A multisignature wallet with support for confirmations using signed messages based on ERC191.\n @author Stefan George - <stefan@gnosis.io>\n @author Richard Meissner - <richard@gnosis.io>"},"fullyImplemented":true,"linearizedBaseContracts":[59069,59230,60265,59152,60580,60164,60210,60108,59597,59101,60190,60216,60137],"name":"GnosisSafe","nameLocation":"731:10:78","scope":59070,"usedErrors":[]}],"license":"LGPL-3.0-only"},"id":78}