UNPKG

@daostack/arc-experimental

Version:

A platform for building DAOs

490 lines (489 loc) 42.9 kB
{ "contractName": "Avatar", "abi": [ { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_externalToken", "type": "address" }, { "indexed": false, "internalType": "address", "name": "_spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "_value", "type": "uint256" } ], "name": "ExternalTokenApproval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_externalToken", "type": "address" }, { "indexed": true, "internalType": "address", "name": "_to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "_value", "type": "uint256" } ], "name": "ExternalTokenTransfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_externalToken", "type": "address" }, { "indexed": false, "internalType": "address", "name": "_from", "type": "address" }, { "indexed": false, "internalType": "address", "name": "_to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "_value", "type": "uint256" } ], "name": "ExternalTokenTransferFrom", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_contract", "type": "address" }, { "indexed": false, "internalType": "bytes", "name": "_data", "type": "bytes" }, { "indexed": false, "internalType": "uint256", "name": "_value", "type": "uint256" }, { "indexed": false, "internalType": "bool", "name": "_success", "type": "bool" } ], "name": "GenericCall", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "_metaData", "type": "string" } ], "name": "MetaData", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "inputs": [ { "internalType": "string", "name": "", "type": "string" } ], "name": "db", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "contract IERC20", "name": "_externalToken", "type": "address" }, { "internalType": "address", "name": "_spender", "type": "address" }, { "internalType": "uint256", "name": "_value", "type": "uint256" } ], "name": "externalTokenApproval", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "contract IERC20", "name": "_externalToken", "type": "address" }, { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_value", "type": "uint256" } ], "name": "externalTokenTransfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "contract IERC20", "name": "_externalToken", "type": "address" }, { "internalType": "address", "name": "_from", "type": "address" }, { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_value", "type": "uint256" } ], "name": "externalTokenTransferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_contract", "type": "address" }, { "internalType": "bytes", "name": "_data", "type": "bytes" }, { "internalType": "uint256", "name": "_value", "type": "uint256" } ], "name": "genericCall", "outputs": [ { "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "returnValue", "type": "bytes" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_orgName", "type": "string" }, { "internalType": "contract DAOToken", "name": "_nativeToken", "type": "address" }, { "internalType": "contract Reputation", "name": "_nativeReputation", "type": "address" }, { "internalType": "address", "name": "_owner", "type": "address" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_metaData", "type": "string" } ], "name": "metaData", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "nativeReputation", "outputs": [ { "internalType": "contract Reputation", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "nativeToken", "outputs": [ { "internalType": "contract DAOToken", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "orgName", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "sendEthToVault", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amountInWei", "type": "uint256" }, { "internalType": "address payable", "name": "_to", "type": "address" } ], "name": "sendEther", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_key", "type": "string" }, { "internalType": "string", "name": "_value", "type": "string" } ], "name": "setDBValue", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "vault", "outputs": [ { "internalType": "contract Vault", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ], "bytecode": "0x608060405234801561001057600080fd5b50611fb2806100206000396000f3fe6080604052600436106101025760003560e01c80639c9c732611610095578063dab0efff11610064578063dab0efff146105fe578063e1758bd814610641578063f2fde38b14610656578063f34822b414610689578063fbfa77cf1461071f57610123565b80639c9c73261461046e578063ab751f7114610539578063b756d5a21461057c578063cb16d4a2146105c557610123565b8063715018a6116100d1578063715018a614610384578063890ac46c1461039957806389ae1c90146104285780638da5cb5b1461045957610123565b80631386dc2d146101285780632bf16458146101b2578063582a6ca5146102be57806358cb548b146102d357610123565b3661012357609a546001600160a01b0316331461012157610121610734565b005b600080fd5b34801561013457600080fd5b5061013d610770565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561017757818101518382015260200161015f565b50505050905090810190601f1680156101a45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101be57600080fd5b5061023d600480360360608110156101d557600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156101ff57600080fd5b82018360208201111561021157600080fd5b803590602001918460018302840111600160201b8311171561023257600080fd5b9193509150356107fe565b60405180831515815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561028257818101518382015260200161026a565b50505050905090810190601f1680156102af5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b3480156102ca57600080fd5b50610121610734565b3480156102df57600080fd5b5061013d600480360360208110156102f657600080fd5b810190602081018135600160201b81111561031057600080fd5b82018360208201111561032257600080fd5b803590602001918460018302840111600160201b8311171561034357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506109d2945050505050565b34801561039057600080fd5b50610121610a46565b3480156103a557600080fd5b50610414600480360360208110156103bc57600080fd5b810190602081018135600160201b8111156103d657600080fd5b8201836020820111156103e857600080fd5b803590602001918460018302840111600160201b8311171561040957600080fd5b509092509050610ae8565b604080519115158252519081900360200190f35b34801561043457600080fd5b5061043d610bab565b604080516001600160a01b039092168252519081900360200190f35b34801561046557600080fd5b5061043d610bba565b34801561047a57600080fd5b506104146004803603604081101561049157600080fd5b810190602081018135600160201b8111156104ab57600080fd5b8201836020820111156104bd57600080fd5b803590602001918460018302840111600160201b831117156104de57600080fd5b919390929091602081019035600160201b8111156104fb57600080fd5b82018360208201111561050d57600080fd5b803590602001918460018302840111600160201b8311171561052e57600080fd5b509092509050610bc9565b34801561054557600080fd5b506104146004803603606081101561055c57600080fd5b506001600160a01b03813581169160208101359091169060400135610c65565b34801561058857600080fd5b506104146004803603608081101561059f57600080fd5b506001600160a01b03813581169160208101358216916040820135169060600135610d23565b3480156105d157600080fd5b50610414600480360360408110156105e857600080fd5b50803590602001356001600160a01b0316610dec565b34801561060a57600080fd5b506104146004803603606081101561062157600080fd5b506001600160a01b03813581169160208101359091169060400135610ed1565b34801561064d57600080fd5b5061043d610f94565b34801561066257600080fd5b506101216004803603602081101561067957600080fd5b50356001600160a01b0316610fa3565b34801561069557600080fd5b50610121600480360360808110156106ac57600080fd5b810190602081018135600160201b8111156106c657600080fd5b8201836020820111156106d857600080fd5b803590602001918460018302840111600160201b831117156106f957600080fd5b91935091506001600160a01b03813581169160208101358216916040909101351661109c565b34801561072b57600080fd5b5061043d611231565b609a546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561076d573d6000803e3d6000fd5b50565b6097805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107f65780601f106107cb576101008083540402835291602001916107f6565b820191906000526020600020905b8154815290600101906020018083116107d957829003601f168201915b505050505081565b6000606061080a611240565b6065546001600160a01b0390811691161461085a576040805162461bcd60e51b81526020600482018190526024820152600080516020611ecf833981519152604482015290519081900360640190fd5b82156108e157609a546040805163658b6a5160e11b81526004810186905230602482015290516001600160a01b039092169163cb16d4a2916044808201926020929091908290030181600087803b1580156108b457600080fd5b505af11580156108c8573d6000803e3d6000fd5b505050506040513d60208110156108de57600080fd5b50505b856001600160a01b0316838686604051808383808284376040519201945060009350909150508083038185875af1925050503d806000811461093f576040519150601f19603f3d011682016040523d82523d6000602084013e610944565b606091505b508092508193505050856001600160a01b03167f534b52c783549f909f9e743120524d0b7154058e4a54cdc895c2c0b587a1c7e086868686604051808060200184815260200183151581526020018281038252868682818152602001925080828437600083820152604051601f909101601f191690920182900397509095505050505050a294509492505050565b8051602081830181018051609b8252928201938201939093209190925280546040805160026001841615610100026000190190931692909204601f810185900485028301850190915280825290928301828280156107f65780601f106107cb576101008083540402835291602001916107f6565b610a4e611240565b6065546001600160a01b03908116911614610a9e576040805162461bcd60e51b81526020600482018190526024820152600080516020611ecf833981519152604482015290519081900360640190fd5b6065546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3606580546001600160a01b0319169055565b6000610af2611240565b6065546001600160a01b03908116911614610b42576040805162461bcd60e51b81526020600482018190526024820152600080516020611ecf833981519152604482015290519081900360640190fd5b7ff9deba4938ba20070ec5a45ddf59bccba49cf83124215228ec1232182ef0ba2b838360405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a150600192915050565b6099546001600160a01b031681565b6065546001600160a01b031690565b6000610bd3611240565b6065546001600160a01b03908116911614610c23576040805162461bcd60e51b81526020600482018190526024820152600080516020611ecf833981519152604482015290519081900360640190fd5b8282609b878760405180838380828437808301925050509250505090815260200160405180910390209190610c59929190611701565b50600195945050505050565b6000610c6f611240565b6065546001600160a01b03908116911614610cbf576040805162461bcd60e51b81526020600482018190526024820152600080516020611ecf833981519152604482015290519081900360640190fd5b610cd36001600160a01b0385168484611244565b604080516001600160a01b038581168252602082018590528251908716927f3a48a4d6253b30fd10e57a347c1f9bcb0604946481fae0b2fdad6e74f2a9cbb3928290030190a25060019392505050565b6000610d2d611240565b6065546001600160a01b03908116911614610d7d576040805162461bcd60e51b81526020600482018190526024820152600080516020611ecf833981519152604482015290519081900360640190fd5b610d926001600160a01b03861685858561135c565b604080516001600160a01b03868116825285811660208301528183018590529151918716917f179c15de44aa7ab84896301974328eb40b5b40fe01cfe0fee2924ea712c3e8439181900360600190a2506001949350505050565b6000610df6611240565b6065546001600160a01b03908116911614610e46576040805162461bcd60e51b81526020600482018190526024820152600080516020611ecf833981519152604482015290519081900360640190fd5b609a546040805163658b6a5160e11b8152600481018690526001600160a01b0385811660248301529151919092169163cb16d4a29160448083019260209291908290030181600087803b158015610e9c57600080fd5b505af1158015610eb0573d6000803e3d6000fd5b505050506040513d6020811015610ec657600080fd5b506001949350505050565b6000610edb611240565b6065546001600160a01b03908116911614610f2b576040805162461bcd60e51b81526020600482018190526024820152600080516020611ecf833981519152604482015290519081900360640190fd5b610f3f6001600160a01b03851684846113bc565b826001600160a01b0316846001600160a01b03167f49dc2a60d2599a7b6932d78fb694c30dfc596fe4e0282b5d0fd184b52472c04d846040518082815260200191505060405180910390a35060019392505050565b6098546001600160a01b031681565b610fab611240565b6065546001600160a01b03908116911614610ffb576040805162461bcd60e51b81526020600482018190526024820152600080516020611ecf833981519152604482015290519081900360640190fd5b6001600160a01b0381166110405760405162461bcd60e51b8152600401808060200182810382526026815260200180611ea96026913960400191505060405180910390fd5b6065546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3606580546001600160a01b0319166001600160a01b0392909216919091179055565b600054610100900460ff16806110b557506110b561140e565b806110c3575060005460ff16155b6110fe5760405162461bcd60e51b815260040180806020018281038252602e815260200180611eef602e913960400191505060405180910390fd5b600054610100900460ff16158015611129576000805460ff1961ff0019909116610100171660011790555b61113560978787611701565b50609880546001600160a01b038087166001600160a01b031992831617909255609980549286169290911691909117905561116e611414565b61117782610fa3565b6040516111839061177f565b604051809103906000f08015801561119f573d6000803e3d6000fd5b50609a80546001600160a01b0319166001600160a01b0392831617908190556040805163189acdbd60e31b81523060048201529051919092169163c4d66de891602480830192600092919082900301818387803b1580156111ff57600080fd5b505af1158015611213573d6000803e3d6000fd5b505050508015611229576000805461ff00191690555b505050505050565b609a546001600160a01b031681565b3390565b8015806112ca575060408051636eb1769f60e11b81523060048201526001600160a01b03848116602483015291519185169163dd62ed3e91604480820192602092909190829003018186803b15801561129c57600080fd5b505afa1580156112b0573d6000803e3d6000fd5b505050506040513d60208110156112c657600080fd5b5051155b6113055760405162461bcd60e51b8152600401808060200182810382526036815260200180611f476036913960400191505060405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b17905261135790849061150d565b505050565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526113b690859061150d565b50505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261135790849061150d565b303b1590565b600054610100900460ff168061142d575061142d61140e565b8061143b575060005460ff16155b6114765760405162461bcd60e51b815260040180806020018281038252602e815260200180611eef602e913960400191505060405180910390fd5b600054610100900460ff161580156114a1576000805460ff1961ff0019909116610100171660011790555b60006114ab611240565b606580546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350801561076d576000805461ff001916905550565b61151f826001600160a01b03166116c5565b611570576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b602083106115ae5780518252601f19909201916020918201910161158f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611610576040519150601f19603f3d011682016040523d82523d6000602084013e611615565b606091505b50915091508161166c576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b8051156113b65780806020019051602081101561168857600080fd5b50516113b65760405162461bcd60e51b815260040180806020018281038252602a815260200180611f1d602a913960400191505060405180910390fd5b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708181148015906116f957508115155b949350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106117425782800160ff1982351617855561176f565b8280016001018555821561176f579182015b8281111561176f578235825591602001919060010190611754565b5061177b92915061178c565b5090565b610707806117a283390190565b5b8082111561177b576000815560010161178d56fe608060405234801561001057600080fd5b506106e7806100206000396000f3fe60806040526004361061004e5760003560e01c8063715018a6146100905780638da5cb5b146100a7578063c4d66de8146100d8578063cb16d4a21461010b578063f2fde38b146101585761008b565b3661008b5760408051348152905133917ff32a9f77675fd5917534c7746608fd3e309eac68fbdcbf5925e24ca97a704396919081900360200190a2005b600080fd5b34801561009c57600080fd5b506100a561018b565b005b3480156100b357600080fd5b506100bc61023f565b604080516001600160a01b039092168252519081900360200190f35b3480156100e457600080fd5b506100a5600480360360208110156100fb57600080fd5b50356001600160a01b031661024e565b34801561011757600080fd5b506101446004803603604081101561012e57600080fd5b50803590602001356001600160a01b0316610302565b604080519115158252519081900360200190f35b34801561016457600080fd5b506100a56004803603602081101561017b57600080fd5b50356001600160a01b031661044e565b610193610559565b6065546001600160a01b039081169116146101f5576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6065546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3606580546001600160a01b0319169055565b6065546001600160a01b031690565b600054610100900460ff1680610267575061026761055d565b80610275575060005460ff16155b6102b05760405162461bcd60e51b815260040180806020018281038252602e815260200180610684602e913960400191505060405180910390fd5b600054610100900460ff161580156102db576000805460ff1961ff0019909116610100171660011790555b6102e3610563565b6102ec8261044e565b80156102fe576000805461ff00191690555b5050565b600061030c610559565b6065546001600160a01b0390811691161461036e576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6040516000906001600160a01b0384169085908381818185875af1925050503d80600081146103b9576040519150601f19603f3d011682016040523d82523d6000602084013e6103be565b606091505b5050905080610408576040805162461bcd60e51b815260206004820152601160248201527039b2b73222ba3432b9103330b4b632b21760791b604482015290519081900360640190fd5b6040805185815290516001600160a01b038516917f5cf9c3dc0403b88750b3ce5ea792cdca787ff26128f6d508b99b2d3853ae13ec919081900360200190a25092915050565b610456610559565b6065546001600160a01b039081169116146104b8576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0381166104fd5760405162461bcd60e51b815260040180806020018281038252602681526020018061065e6026913960400191505060405180910390fd5b6065546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3606580546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b303b1590565b600054610100900460ff168061057c575061057c61055d565b8061058a575060005460ff16155b6105c55760405162461bcd60e51b815260040180806020018281038252602e815260200180610684602e913960400191505060405180910390fd5b600054610100900460ff161580156105f0576000805460ff1961ff0019909116610100171660011790555b60006105fa610559565b606580546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350801561065a576000805461ff00191690555b5056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564a2646970667358221220157c7771cc4a87a41a603a3d9de8b49468f6f837834ee592668d5dde0c6c763e64736f6c634300060c00334f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a65645361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565645361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365a26469706673582212205e79e8a76dcae8bbbef4d5cda3f81209f6fbaa27abad10bc842f118c730c18b664736f6c634300060c0033", "deployedBytecode": "0x6080604052600436106101025760003560e01c80639c9c732611610095578063dab0efff11610064578063dab0efff146105fe578063e1758bd814610641578063f2fde38b14610656578063f34822b414610689578063fbfa77cf1461071f57610123565b80639c9c73261461046e578063ab751f7114610539578063b756d5a21461057c578063cb16d4a2146105c557610123565b8063715018a6116100d1578063715018a614610384578063890ac46c1461039957806389ae1c90146104285780638da5cb5b1461045957610123565b80631386dc2d146101285780632bf16458146101b2578063582a6ca5146102be57806358cb548b146102d357610123565b3661012357609a546001600160a01b0316331461012157610121610734565b005b600080fd5b34801561013457600080fd5b5061013d610770565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561017757818101518382015260200161015f565b50505050905090810190601f1680156101a45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101be57600080fd5b5061023d600480360360608110156101d557600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156101ff57600080fd5b82018360208201111561021157600080fd5b803590602001918460018302840111600160201b8311171561023257600080fd5b9193509150356107fe565b60405180831515815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561028257818101518382015260200161026a565b50505050905090810190601f1680156102af5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b3480156102ca57600080fd5b50610121610734565b3480156102df57600080fd5b5061013d600480360360208110156102f657600080fd5b810190602081018135600160201b81111561031057600080fd5b82018360208201111561032257600080fd5b803590602001918460018302840111600160201b8311171561034357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506109d2945050505050565b34801561039057600080fd5b50610121610a46565b3480156103a557600080fd5b50610414600480360360208110156103bc57600080fd5b810190602081018135600160201b8111156103d657600080fd5b8201836020820111156103e857600080fd5b803590602001918460018302840111600160201b8311171561040957600080fd5b509092509050610ae8565b604080519115158252519081900360200190f35b34801561043457600080fd5b5061043d610bab565b604080516001600160a01b039092168252519081900360200190f35b34801561046557600080fd5b5061043d610bba565b34801561047a57600080fd5b506104146004803603604081101561049157600080fd5b810190602081018135600160201b8111156104ab57600080fd5b8201836020820111156104bd57600080fd5b803590602001918460018302840111600160201b831117156104de57600080fd5b919390929091602081019035600160201b8111156104fb57600080fd5b82018360208201111561050d57600080fd5b803590602001918460018302840111600160201b8311171561052e57600080fd5b509092509050610bc9565b34801561054557600080fd5b506104146004803603606081101561055c57600080fd5b506001600160a01b03813581169160208101359091169060400135610c65565b34801561058857600080fd5b506104146004803603608081101561059f57600080fd5b506001600160a01b03813581169160208101358216916040820135169060600135610d23565b3480156105d157600080fd5b50610414600480360360408110156105e857600080fd5b50803590602001356001600160a01b0316610dec565b34801561060a57600080fd5b506104146004803603606081101561062157600080fd5b506001600160a01b03813581169160208101359091169060400135610ed1565b34801561064d57600080fd5b5061043d610f94565b34801561066257600080fd5b506101216004803603602081101561067957600080fd5b50356001600160a01b0316610fa3565b34801561069557600080fd5b50610121600480360360808110156106ac57600080fd5b810190602081018135600160201b8111156106c657600080fd5b8201836020820111156106d857600080fd5b803590602001918460018302840111600160201b831117156106f957600080fd5b91935091506001600160a01b03813581169160208101358216916040909101351661109c565b34801561072b57600080fd5b5061043d611231565b609a546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561076d573d6000803e3d6000fd5b50565b6097805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107f65780601f106107cb576101008083540402835291602001916107f6565b820191906000526020600020905b8154815290600101906020018083116107d957829003601f168201915b505050505081565b6000606061080a611240565b6065546001600160a01b0390811691161461085a576040805162461bcd60e51b81526020600482018190526024820152600080516020611ecf833981519152604482015290519081900360640190fd5b82156108e157609a546040805163658b6a5160e11b81526004810186905230602482015290516001600160a01b039092169163cb16d4a2916044808201926020929091908290030181600087803b1580156108b457600080fd5b505af11580156108c8573d6000803e3d6000fd5b505050506040513d60208110156108de57600080fd5b50505b856001600160a01b0316838686604051808383808284376040519201945060009350909150508083038185875af1925050503d806000811461093f576040519150601f19603f3d011682016040523d82523d6000602084013e610944565b606091505b508092508193505050856001600160a01b03167f534b52c783549f909f9e743120524d0b7154058e4a54cdc895c2c0b587a1c7e086868686604051808060200184815260200183151581526020018281038252868682818152602001925080828437600083820152604051601f909101601f191690920182900397509095505050505050a294509492505050565b8051602081830181018051609b8252928201938201939093209190925280546040805160026001841615610100026000190190931692909204601f810185900485028301850190915280825290928301828280156107f65780601f106107cb576101008083540402835291602001916107f6565b610a4e611240565b6065546001600160a01b03908116911614610a9e576040805162461bcd60e51b81526020600482018190526024820152600080516020611ecf833981519152604482015290519081900360640190fd5b6065546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3606580546001600160a01b0319169055565b6000610af2611240565b6065546001600160a01b03908116911614610b42576040805162461bcd60e51b81526020600482018190526024820152600080516020611ecf833981519152604482015290519081900360640190fd5b7ff9deba4938ba20070ec5a45ddf59bccba49cf83124215228ec1232182ef0ba2b838360405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a150600192915050565b6099546001600160a01b031681565b6065546001600160a01b031690565b6000610bd3611240565b6065546001600160a01b03908116911614610c23576040805162461bcd60e51b81526020600482018190526024820152600080516020611ecf833981519152604482015290519081900360640190fd5b8282609b878760405180838380828437808301925050509250505090815260200160405180910390209190610c59929190611701565b50600195945050505050565b6000610c6f611240565b6065546001600160a01b03908116911614610cbf576040805162461bcd60e51b81526020600482018190526024820152600080516020611ecf833981519152604482015290519081900360640190fd5b610cd36001600160a01b0385168484611244565b604080516001600160a01b038581168252602082018590528251908716927f3a48a4d6253b30fd10e57a347c1f9bcb0604946481fae0b2fdad6e74f2a9cbb3928290030190a25060019392505050565b6000610d2d611240565b6065546001600160a01b03908116911614610d7d576040805162461bcd60e51b81526020600482018190526024820152600080516020611ecf833981519152604482015290519081900360640190fd5b610d926001600160a01b03861685858561135c565b604080516001600160a01b03868116825285811660208301528183018590529151918716917f179c15de44aa7ab84896301974328eb40b5b40fe01cfe0fee2924ea712c3e8439181900360600190a2506001949350505050565b6000610df6611240565b6065546001600160a01b03908116911614610e46576040805162461bcd60e51b81526020600482018190526024820152600080516020611ecf833981519152604482015290519081900360640190fd5b609a546040805163658b6a5160e11b8152600481018690526001600160a01b0385811660248301529151919092169163cb16d4a29160448083019260209291908290030181600087803b158015610e9c57600080fd5b505af1158015610eb0573d6000803e3d6000fd5b505050506040513d6020811015610ec657600080fd5b506001949350505050565b6000610edb611240565b6065546001600160a01b03908116911614610f2b576040805162461bcd60e51b81526020600482018190526024820152600080516020611ecf833981519152604482015290519081900360640190fd5b610f3f6001600160a01b03851684846113bc565b826001600160a01b0316846001600160a01b03167f49dc2a60d2599a7b6932d78fb694c30dfc596fe4e0282b5d0fd184b52472c04d846040518082815260200191505060405180910390a35060019392505050565b6098546001600160a01b031681565b610fab611240565b6065546001600160a01b03908116911614610ffb576040805162461bcd60e51b81526020600482018190526024820152600080516020611ecf833981519152604482015290519081900360640190fd5b6001600160a01b0381166110405760405162461bcd60e51b8152600401808060200182810382526026815260200180611ea96026913960400191505060405180910390fd5b6065546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3606580546001600160a01b0319166001600160a01b0392909216919091179055565b600054610100900460ff16806110b557506110b561140e565b806110c3575060005460ff16155b6110fe5760405162461bcd60e51b815260040180806020018281038252602e815260200180611eef602e913960400191505060405180910390fd5b600054610100900460ff16158015611129576000805460ff1961ff0019909116610100171660011790555b61113560978787611701565b50609880546001600160a01b038087166001600160a01b031992831617909255609980549286169290911691909117905561116e611414565b61117782610fa3565b6040516111839061177f565b604051809103906000f08015801561119f573d6000803e3d6000fd5b50609a80546001600160a01b0319166001600160a01b0392831617908190556040805163189acdbd60e31b81523060048201529051919092169163c4d66de891602480830192600092919082900301818387803b1580156111ff57600080fd5b505af1158015611213573d6000803e3d6000fd5b505050508015611229576000805461ff00191690555b505050505050565b609a546001600160a01b031681565b3390565b8015806112ca575060408051636eb1769f60e11b81523060048201526001600160a01b03848116602483015291519185169163dd62ed3e91604480820192602092909190829003018186803b15801561129c57600080fd5b505afa1580156112b0573d6000803e3d6000fd5b505050506040513d60208110156112c657600080fd5b5051155b6113055760405162461bcd60e51b8152600401808060200182810382526036815260200180611f476036913960400191505060405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b17905261135790849061150d565b505050565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526113b690859061150d565b50505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261135790849061150d565b303b1590565b600054610100900460ff168061142d575061142d61140e565b8061143b575060005460ff16155b6114765760405162461bcd60e51b815260040180806020018281038252602e815260200180611eef602e913960400191505060405180910390fd5b600054610100900460ff161580156114a1576000805460ff1961ff0019909116610100171660011790555b60006114ab611240565b606580546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350801561076d576000805461ff001916905550565b61151f826001600160a01b03166116c5565b611570576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b602083106115ae5780518252601f19909201916020918201910161158f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611610576040519150601f19603f3d011682016040523d82523d6000602084013e611615565b606091505b50915091508161166c576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b8051156113b65780806020019051602081101561168857600080fd5b50516113b65760405162461bcd60e51b815260040180806020018281038252602a815260200180611f1d602a913960400191505060405180910390fd5b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708181148015906116f957508115155b949350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106117425782800160ff1982351617855561176f565b8280016001018555821561176f579182015b8281111561176f578235825591602001919060010190611754565b5061177b92915061178c565b5090565b610707806117a283390190565b5b8082111561177b576000815560010161178d56fe608060405234801561001057600080fd5b506106e7806100206000396000f3fe60806040526004361061004e5760003560e01c8063715018a6146100905780638da5cb5b146100a7578063c4d66de8146100d8578063cb16d4a21461010b578063f2fde38b146101585761008b565b3661008b5760408051348152905133917ff32a9f77675fd5917534c7746608fd3e309eac68fbdcbf5925e24ca97a704396919081900360200190a2005b600080fd5b34801561009c57600080fd5b506100a561018b565b005b3480156100b357600080fd5b506100bc61023f565b604080516001600160a01b039092168252519081900360200190f35b3480156100e457600080fd5b506100a5600480360360208110156100fb57600080fd5b50356001600160a01b031661024e565b34801561011757600080fd5b506101446004803603604081101561012e57600080fd5b50803590602001356001600160a01b0316610302565b604080519115158252519081900360200190f35b34801561016457600080fd5b506100a56004803603602081101561017b57600080fd5b50356001600160a01b031661044e565b610193610559565b6065546001600160a01b039081169116146101f5576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6065546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3606580546001600160a01b0319169055565b6065546001600160a01b031690565b600054610100900460ff1680610267575061026761055d565b80610275575060005460ff16155b6102b05760405162461bcd60e51b815260040180806020018281038252602e815260200180610684602e913960400191505060405180910390fd5b600054610100900460ff161580156102db576000805460ff1961ff0019909116610100171660011790555b6102e3610563565b6102ec8261044e565b80156102fe576000805461ff00191690555b5050565b600061030c610559565b6065546001600160a01b0390811691161461036e576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6040516000906001600160a01b0384169085908381818185875af1925050503d80600081146103b9576040519150601f19603f3d011682016040523d82523d6000602084013e6103be565b606091505b5050905080610408576040805162461bcd60e51b815260206004820152601160248201527039b2b73222ba3432b9103330b4b632b21760791b604482015290519081900360640190fd5b6040805185815290516001600160a01b038516917f5cf9c3dc0403b88750b3ce5ea792cdca787ff26128f6d508b99b2d3853ae13ec919081900360200190a25092915050565b610456610559565b6065546001600160a01b039081169116146104b8576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0381166104fd5760405162461bcd60e51b815260040180806020018281038252602681526020018061065e6026913960400191505060405180910390fd5b6065546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3606580546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b303b1590565b600054610100900460ff168061057c575061057c61055d565b8061058a575060005460ff16155b6105c55760405162461bcd60e51b815260040180806020018281038252602e815260200180610684602e913960400191505060405180910390fd5b600054610100900460ff161580156105f0576000805460ff1961ff0019909116610100171660011790555b60006105fa610559565b606580546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350801561065a576000805461ff00191690555b5056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564a2646970667358221220157c7771cc4a87a41a603a3d9de8b49468f6f837834ee592668d5dde0c6c763e64736f6c634300060c00334f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a65645361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565645361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365a26469706673582212205e79e8a76dcae8bbbef4d5cda3f81209f6fbaa27abad10bc842f118c730c18b664736f6c634300060c0033", "linkReferences": {}, "deployedLinkReferences": {} }