{
  "contractName": "SignalScheme",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_avatar",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "_signalType",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "_descriptionHash",
          "type": "string"
        }
      ],
      "name": "NewSignalProposal",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_avatar",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "_signalType",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "_descriptionHash",
          "type": "string"
        }
      ],
      "name": "Signal",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "avatar",
      "outputs": [
        {
          "internalType": "contract Avatar",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IERC20",
          "name": "_stakingToken",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "balanceOfStakingToken",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "_beneficiary",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "burnReputation",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "internalType": "int256",
          "name": "_param",
          "type": "int256"
        }
      ],
      "name": "executeProposal",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "getTotalReputationSupply",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract Avatar",
          "name": "_avatar",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_signalType",
          "type": "uint256"
        },
        {
          "internalType": "bytes32",
          "name": "_voteApproveParams",
          "type": "bytes32"
        },
        {
          "internalType": "contract IntVoteInterface",
          "name": "_votingMachine",
          "type": "address"
        },
        {
          "internalType": "uint256[11]",
          "name": "_votingParams",
          "type": "uint256[11]"
        },
        {
          "internalType": "address",
          "name": "_voteOnBehalf",
          "type": "address"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "_beneficiary",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "mintReputation",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "params",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "voteApproveParams",
          "type": "bytes32"
        },
        {
          "internalType": "contract IntVoteInterface",
          "name": "intVote",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "signalType",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "proposals",
      "outputs": [
        {
          "internalType": "string",
          "name": "descriptionHash",
          "type": "string"
        },
        {
          "internalType": "bool",
          "name": "executed",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "proposalsBlockNumber",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "_descriptionHash",
          "type": "string"
        }
      ],
      "name": "proposeSignal",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_owner",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "reputationOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IERC20",
          "name": "_stakingToken",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_beneficiary",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        },
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "stakingTokenTransfer",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "voteParamsHash",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "votingMachine",
      "outputs": [
        {
          "internalType": "contract IntVoteInterface",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b5061161a806100206000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80639588378e11610097578063cff0ab9611610066578063cff0ab9614610355578063d176ffc214610383578063d29b5d2f146103ce578063f81f8bf614610400576100f5565b80639588378e146102995780639d4c162d146102c5578063b551c373146102fc578063bea75f2814610319576100f5565b80635aef7de6116100d35780635aef7de6146101d85780636b8eb403146101e05780637a5cb92c1461020c5780638543478814610229576100f5565b806332ed5b12146100fa5780633edf7ca11461019a5780634ea2c7ec146101be575b600080fd5b6101176004803603602081101561011057600080fd5b5035610432565b604051808060200183151515158152602001828103825284818151815260200191508051906020019080838360005b8381101561015e578181015183820152602001610146565b50505050905090810190601f16801561018b5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b6101a26104dc565b604080516001600160a01b039092168252519081900360200190f35b6101c66104eb565b60408051918252519081900360200190f35b6101a26104f1565b6101c6600480360360408110156101f657600080fd5b506001600160a01b038135169060200135610500565b6101c66004803603602081101561022257600080fd5b50356105da565b6101c66004803603602081101561023f57600080fd5b81019060208101813564010000000081111561025a57600080fd5b82018360208201111561026c57600080fd5b8035906020019184600183028401116401000000008311171561028e57600080fd5b5090925090506105ec565b6101c6600480360360408110156102af57600080fd5b506001600160a01b038135169060200135610860565b6102e8600480360360408110156102db57600080fd5b5080359060200135610991565b604080519115158252519081900360200190f35b6101c66004803603602081101561031257600080fd5b5035610b00565b6102e86004803603608081101561032f57600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135610c5d565b61035d610dc1565b604080519384526001600160a01b03909216602084015282820152519081900360600190f35b6103cc600480360361020081101561039a57600080fd5b506001600160a01b038135811691602081013591604082013591606081013582169160808201916101e0013516610dd9565b005b6102e8600480360360608110156103e457600080fd5b508035906001600160a01b036020820135169060400135610efe565b6102e86004803603606081101561041657600080fd5b508035906001600160a01b036020820135169060400135611059565b60376020908152600091825260409182902080548351601f600260001961010060018616150201909316929092049182018490048402810184019094528084529092918391908301828280156104c95780601f1061049e576101008083540402835291602001916104c9565b820191906000526020600020905b8154815290600101906020018083116104ac57829003601f168201915b5050506001909301549192505060ff1682565b6034546001600160a01b031681565b60355481565b6033546001600160a01b031681565b60345460009082906001600160a01b03163314610559576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603354604080516370a0823160e01b81526001600160a01b0392831660048201529051918616916370a0823191602480820192602092909190829003018186803b1580156105a657600080fd5b505afa1580156105ba573d6000803e3d6000fd5b505050506040513d60208110156105d057600080fd5b5051949350505050565b60366020526000908152604090205481565b60335460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b15801561063157600080fd5b505afa158015610645573d6000803e3d6000fd5b505050506040513d602081101561065b57600080fd5b505160408051632074193160e21b815230600482015290516001600160a01b03909216916381d064c491602480820192602092909190829003018186803b1580156106a557600080fd5b505afa1580156106b9573d6000803e3d6000fd5b505050506040513d60208110156106cf57600080fd5b5051610722576040805162461bcd60e51b815260206004820152601860248201527f736368656d65206973206e6f7420726567697374657265640000000000000000604482015290519081900360640190fd5b60395460385460335460408051634439bdaf60e11b81526002600482015260248101939093523360448401526001600160a01b0391821660648401525160009391909116916388737b5e91608480830192602092919082900301818787803b15801561078d57600080fd5b505af11580156107a1573d6000803e3d6000fd5b505050506040513d60208110156107b757600080fd5b505160008181526037602052604090209091506107d590858561151e565b50603a54603354604080516020808252810187905284926001600160a01b0316917f940af78fa85d990be5623aeca8b988922784c8c782b1c2c2fb416d83c05547fb91899189919081908101848480828437600083820152604051601f909101601f19169092018290039550909350505050a460008181526036602052604090204390559392505050565b60345460009082906001600160a01b031633146108b9576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b03166389ae1c906040518163ffffffff1660e01b815260040160206040518083038186803b15801561090757600080fd5b505afa15801561091b573d6000803e3d6000fd5b505050506040513d602081101561093157600080fd5b505160008481526036602090815260409182902054825163277166bf60e11b81526001600160a01b03898116600483015260248201929092529251931692634ee2cd7e926044808201939291829003018186803b1580156105a657600080fd5b60345460009083906001600160a01b031633146109ea576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b60008481526037602052604090206001015460ff1615610a0957600080fd5b60008481526037602052604090206001908101805460ff191682179055831415610af657603a54603354600086815260376020908152604091829020825182815281546002600019600183161561010002019091160492810183905289946001600160a01b0316937fefc186437cd31fb390ee7bfa83473db0ede42b31121c466bb7afb8b3f665ca9893829182019084908015610ae75780601f10610abc57610100808354040283529160200191610ae7565b820191906000526020600020905b815481529060010190602001808311610aca57829003601f168201915b50509250505060405180910390a45b5060019392505050565b60345460009082906001600160a01b03163314610b59576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b03166389ae1c906040518163ffffffff1660e01b815260040160206040518083038186803b158015610ba757600080fd5b505afa158015610bbb573d6000803e3d6000fd5b505050506040513d6020811015610bd157600080fd5b5051600084815260366020908152604091829020548251630981b24d60e41b8152600481019190915291516001600160a01b039093169263981b24d0926024808201939291829003018186803b158015610c2a57600080fd5b505afa158015610c3e573d6000803e3d6000fd5b505050506040513d6020811015610c5457600080fd5b50519392505050565b60345460009082906001600160a01b03163314610cb6576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610d0457600080fd5b505afa158015610d18573d6000803e3d6000fd5b505050506040513d6020811015610d2e57600080fd5b50516040805163dab0efff60e01b81526001600160a01b0389811660048301528881166024830152604482018890529151919092169163dab0efff9160648083019260209291908290030181600087803b158015610d8b57600080fd5b505af1158015610d9f573d6000803e3d6000fd5b505050506040513d6020811015610db557600080fd5b50519695505050505050565b603854603954603a546001600160a01b039091169083565b600054610100900460ff1680610df25750610df261117f565b80610e00575060005460ff16155b610e3b5760405162461bcd60e51b815260040180806020018281038252602e8152602001806115b7602e913960400191505060405180910390fd5b600054610100900460ff16158015610e66576000805460ff1961ff0019909116610100171660011790555b610e9d87858786600b806020026040519081016040528092919082600b602002808284376000920191909152508891506111869050565b604080516060810182526035548082526001600160a01b0387166020830181905291909201889052603891909155603980546001600160a01b0319169091179055603a8690558015610ef5576000805461ff00191690555b50505050505050565b60345460009082906001600160a01b03163314610f57576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610fa557600080fd5b505afa158015610fb9573d6000803e3d6000fd5b505050506040513d6020811015610fcf57600080fd5b50516040805163dea9e24d60e01b8152600481018890526001600160a01b0387811660248301529151919092169163dea9e24d9160448083019260209291908290030181600087803b15801561102457600080fd5b505af1158015611038573d6000803e3d6000fd5b505050506040513d602081101561104e57600080fd5b505195945050505050565b60345460009082906001600160a01b031633146110b2576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561110057600080fd5b505afa158015611114573d6000803e3d6000fd5b505050506040513d602081101561112a57600080fd5b50516040805163ddbfcc6b60e01b8152600481018890526001600160a01b0387811660248301529151919092169163ddbfcc6b9160448083019260209291908290030181600087803b15801561102457600080fd5b303b155b90565b6001600160a01b0384166111e1576040805162461bcd60e51b815260206004820152601c60248201527f766f74696e674d616368696e652063616e6e6f74206265207a65726f00000000604482015290519081900360640190fd5b6111ea85611405565b603480546001600160a01b0319166001600160a01b038616179055826113f8576040516307b4e1e360e01b815284906001600160a01b038216906307b4e1e39085908590600401808361016080838360005b8381101561125457818101518382015260200161123c565b50505050905001826001600160a01b03166001600160a01b031681526020019250505060206040518083038186803b15801561128f57600080fd5b505afa1580156112a3573d6000803e3d6000fd5b505050506040513d60208110156112b957600080fd5b505160358190556040805162941a0160e21b81526004810192909252516000916001600160a01b038416916302506804916024808201926101a092909190829003018186803b15801561130b57600080fd5b505afa15801561131f573d6000803e3d6000fd5b505050506040513d6101a081101561133657600080fd5b50519050806113f157604051638894c41b60e01b81526001600160a01b03831690638894c41b9086908690600401808361016080838360005b8381101561138757818101518382015260200161136f565b50505050905001826001600160a01b03166001600160a01b0316815260200192505050602060405180830381600087803b1580156113c457600080fd5b505af11580156113d8573d6000803e3d6000fd5b505050506040513d60208110156113ee57600080fd5b50505b50506113fe565b60358390555b5050505050565b600054610100900460ff168061141e575061141e61117f565b8061142c575060005460ff16155b6114675760405162461bcd60e51b815260040180806020018281038252602e8152602001806115b7602e913960400191505060405180910390fd5b600054610100900460ff16158015611492576000805460ff1961ff0019909116610100171660011790555b6001600160a01b0382166114ed576040805162461bcd60e51b815260206004820152601760248201527f536368656d65206d757374206861766520617661746172000000000000000000604482015290519081900360640190fd5b603380546001600160a01b0319166001600160a01b038416179055801561151a576000805461ff00191690555b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061155f5782800160ff1982351617855561158c565b8280016001018555821561158c579182015b8281111561158c578235825591602001919060010190611571565b5061159892915061159c565b5090565b61118391905b8082111561159857600081556001016115a256fe436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564a26469706673582212202a1d612f2fce591765c3c11ccbf82617d8c2e2079028affa652b7b2a2afc77cf64736f6c634300060a0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100f55760003560e01c80639588378e11610097578063cff0ab9611610066578063cff0ab9614610355578063d176ffc214610383578063d29b5d2f146103ce578063f81f8bf614610400576100f5565b80639588378e146102995780639d4c162d146102c5578063b551c373146102fc578063bea75f2814610319576100f5565b80635aef7de6116100d35780635aef7de6146101d85780636b8eb403146101e05780637a5cb92c1461020c5780638543478814610229576100f5565b806332ed5b12146100fa5780633edf7ca11461019a5780634ea2c7ec146101be575b600080fd5b6101176004803603602081101561011057600080fd5b5035610432565b604051808060200183151515158152602001828103825284818151815260200191508051906020019080838360005b8381101561015e578181015183820152602001610146565b50505050905090810190601f16801561018b5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b6101a26104dc565b604080516001600160a01b039092168252519081900360200190f35b6101c66104eb565b60408051918252519081900360200190f35b6101a26104f1565b6101c6600480360360408110156101f657600080fd5b506001600160a01b038135169060200135610500565b6101c66004803603602081101561022257600080fd5b50356105da565b6101c66004803603602081101561023f57600080fd5b81019060208101813564010000000081111561025a57600080fd5b82018360208201111561026c57600080fd5b8035906020019184600183028401116401000000008311171561028e57600080fd5b5090925090506105ec565b6101c6600480360360408110156102af57600080fd5b506001600160a01b038135169060200135610860565b6102e8600480360360408110156102db57600080fd5b5080359060200135610991565b604080519115158252519081900360200190f35b6101c66004803603602081101561031257600080fd5b5035610b00565b6102e86004803603608081101561032f57600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135610c5d565b61035d610dc1565b604080519384526001600160a01b03909216602084015282820152519081900360600190f35b6103cc600480360361020081101561039a57600080fd5b506001600160a01b038135811691602081013591604082013591606081013582169160808201916101e0013516610dd9565b005b6102e8600480360360608110156103e457600080fd5b508035906001600160a01b036020820135169060400135610efe565b6102e86004803603606081101561041657600080fd5b508035906001600160a01b036020820135169060400135611059565b60376020908152600091825260409182902080548351601f600260001961010060018616150201909316929092049182018490048402810184019094528084529092918391908301828280156104c95780601f1061049e576101008083540402835291602001916104c9565b820191906000526020600020905b8154815290600101906020018083116104ac57829003601f168201915b5050506001909301549192505060ff1682565b6034546001600160a01b031681565b60355481565b6033546001600160a01b031681565b60345460009082906001600160a01b03163314610559576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603354604080516370a0823160e01b81526001600160a01b0392831660048201529051918616916370a0823191602480820192602092909190829003018186803b1580156105a657600080fd5b505afa1580156105ba573d6000803e3d6000fd5b505050506040513d60208110156105d057600080fd5b5051949350505050565b60366020526000908152604090205481565b60335460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b15801561063157600080fd5b505afa158015610645573d6000803e3d6000fd5b505050506040513d602081101561065b57600080fd5b505160408051632074193160e21b815230600482015290516001600160a01b03909216916381d064c491602480820192602092909190829003018186803b1580156106a557600080fd5b505afa1580156106b9573d6000803e3d6000fd5b505050506040513d60208110156106cf57600080fd5b5051610722576040805162461bcd60e51b815260206004820152601860248201527f736368656d65206973206e6f7420726567697374657265640000000000000000604482015290519081900360640190fd5b60395460385460335460408051634439bdaf60e11b81526002600482015260248101939093523360448401526001600160a01b0391821660648401525160009391909116916388737b5e91608480830192602092919082900301818787803b15801561078d57600080fd5b505af11580156107a1573d6000803e3d6000fd5b505050506040513d60208110156107b757600080fd5b505160008181526037602052604090209091506107d590858561151e565b50603a54603354604080516020808252810187905284926001600160a01b0316917f940af78fa85d990be5623aeca8b988922784c8c782b1c2c2fb416d83c05547fb91899189919081908101848480828437600083820152604051601f909101601f19169092018290039550909350505050a460008181526036602052604090204390559392505050565b60345460009082906001600160a01b031633146108b9576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b03166389ae1c906040518163ffffffff1660e01b815260040160206040518083038186803b15801561090757600080fd5b505afa15801561091b573d6000803e3d6000fd5b505050506040513d602081101561093157600080fd5b505160008481526036602090815260409182902054825163277166bf60e11b81526001600160a01b03898116600483015260248201929092529251931692634ee2cd7e926044808201939291829003018186803b1580156105a657600080fd5b60345460009083906001600160a01b031633146109ea576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b60008481526037602052604090206001015460ff1615610a0957600080fd5b60008481526037602052604090206001908101805460ff191682179055831415610af657603a54603354600086815260376020908152604091829020825182815281546002600019600183161561010002019091160492810183905289946001600160a01b0316937fefc186437cd31fb390ee7bfa83473db0ede42b31121c466bb7afb8b3f665ca9893829182019084908015610ae75780601f10610abc57610100808354040283529160200191610ae7565b820191906000526020600020905b815481529060010190602001808311610aca57829003601f168201915b50509250505060405180910390a45b5060019392505050565b60345460009082906001600160a01b03163314610b59576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b03166389ae1c906040518163ffffffff1660e01b815260040160206040518083038186803b158015610ba757600080fd5b505afa158015610bbb573d6000803e3d6000fd5b505050506040513d6020811015610bd157600080fd5b5051600084815260366020908152604091829020548251630981b24d60e41b8152600481019190915291516001600160a01b039093169263981b24d0926024808201939291829003018186803b158015610c2a57600080fd5b505afa158015610c3e573d6000803e3d6000fd5b505050506040513d6020811015610c5457600080fd5b50519392505050565b60345460009082906001600160a01b03163314610cb6576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610d0457600080fd5b505afa158015610d18573d6000803e3d6000fd5b505050506040513d6020811015610d2e57600080fd5b50516040805163dab0efff60e01b81526001600160a01b0389811660048301528881166024830152604482018890529151919092169163dab0efff9160648083019260209291908290030181600087803b158015610d8b57600080fd5b505af1158015610d9f573d6000803e3d6000fd5b505050506040513d6020811015610db557600080fd5b50519695505050505050565b603854603954603a546001600160a01b039091169083565b600054610100900460ff1680610df25750610df261117f565b80610e00575060005460ff16155b610e3b5760405162461bcd60e51b815260040180806020018281038252602e8152602001806115b7602e913960400191505060405180910390fd5b600054610100900460ff16158015610e66576000805460ff1961ff0019909116610100171660011790555b610e9d87858786600b806020026040519081016040528092919082600b602002808284376000920191909152508891506111869050565b604080516060810182526035548082526001600160a01b0387166020830181905291909201889052603891909155603980546001600160a01b0319169091179055603a8690558015610ef5576000805461ff00191690555b50505050505050565b60345460009082906001600160a01b03163314610f57576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610fa557600080fd5b505afa158015610fb9573d6000803e3d6000fd5b505050506040513d6020811015610fcf57600080fd5b50516040805163dea9e24d60e01b8152600481018890526001600160a01b0387811660248301529151919092169163dea9e24d9160448083019260209291908290030181600087803b15801561102457600080fd5b505af1158015611038573d6000803e3d6000fd5b505050506040513d602081101561104e57600080fd5b505195945050505050565b60345460009082906001600160a01b031633146110b2576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561110057600080fd5b505afa158015611114573d6000803e3d6000fd5b505050506040513d602081101561112a57600080fd5b50516040805163ddbfcc6b60e01b8152600481018890526001600160a01b0387811660248301529151919092169163ddbfcc6b9160448083019260209291908290030181600087803b15801561102457600080fd5b303b155b90565b6001600160a01b0384166111e1576040805162461bcd60e51b815260206004820152601c60248201527f766f74696e674d616368696e652063616e6e6f74206265207a65726f00000000604482015290519081900360640190fd5b6111ea85611405565b603480546001600160a01b0319166001600160a01b038616179055826113f8576040516307b4e1e360e01b815284906001600160a01b038216906307b4e1e39085908590600401808361016080838360005b8381101561125457818101518382015260200161123c565b50505050905001826001600160a01b03166001600160a01b031681526020019250505060206040518083038186803b15801561128f57600080fd5b505afa1580156112a3573d6000803e3d6000fd5b505050506040513d60208110156112b957600080fd5b505160358190556040805162941a0160e21b81526004810192909252516000916001600160a01b038416916302506804916024808201926101a092909190829003018186803b15801561130b57600080fd5b505afa15801561131f573d6000803e3d6000fd5b505050506040513d6101a081101561133657600080fd5b50519050806113f157604051638894c41b60e01b81526001600160a01b03831690638894c41b9086908690600401808361016080838360005b8381101561138757818101518382015260200161136f565b50505050905001826001600160a01b03166001600160a01b0316815260200192505050602060405180830381600087803b1580156113c457600080fd5b505af11580156113d8573d6000803e3d6000fd5b505050506040513d60208110156113ee57600080fd5b50505b50506113fe565b60358390555b5050505050565b600054610100900460ff168061141e575061141e61117f565b8061142c575060005460ff16155b6114675760405162461bcd60e51b815260040180806020018281038252602e8152602001806115b7602e913960400191505060405180910390fd5b600054610100900460ff16158015611492576000805460ff1961ff0019909116610100171660011790555b6001600160a01b0382166114ed576040805162461bcd60e51b815260206004820152601760248201527f536368656d65206d757374206861766520617661746172000000000000000000604482015290519081900360640190fd5b603380546001600160a01b0319166001600160a01b038416179055801561151a576000805461ff00191690555b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061155f5782800160ff1982351617855561158c565b8280016001018555821561158c579182015b8281111561158c578235825591602001919060010190611571565b5061159892915061159c565b5090565b61118391905b8082111561159857600081556001016115a256fe436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564a26469706673582212202a1d612f2fce591765c3c11ccbf82617d8c2e2079028affa652b7b2a2afc77cf64736f6c634300060a0033"
}