package generated

import (
	"strings"

	"github.com/autonity/autonity/accounts/abi"
	"github.com/autonity/autonity/common"
)

var AccountabilityBytecode = common.Hex2Bytes("6080604052600060195534801561001557600080fd5b50604051615fe8380380615fe883398101604081905261003491610570565b600080546001600160a01b0319166001600160a01b038416179055606081015161005d9061026b565b608081015161006b906103ab565b80602001518160400151116100db5760405162461bcd60e51b815260206004820152602b60248201527f6865696768742072616e6765206e6565647320746f206265206772656174657260448201526a207468616e2064656c746160a81b60648201526084015b60405180910390fd5b60008060009054906101000a90046001600160a01b03166001600160a01b031663ab8f6ffe6040518163ffffffff1660e01b8152600401600060405180830381865afa15801561012f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526101579190810190610615565b905060005b8151811015610209576014828281518110610179576101796107b4565b6020908102919091018101515182546001808201855560009485529284200180546001600160a01b0319166001600160a01b03909216919091179055835190916015918590859081106101ce576101ce6107b4565b602090810291909101810151516001600160a01b03168252810191909152604001600020805460ff191691151591909117905560010161015c565b50508051600355602080820151600481905560408084015160058190556060850151805160065580850151600755820151600855608090940151805160095592830151600a559190910151600b55600c91909155600d55506000600e556108dc565b6020810151815111156102cc5760405162461bcd60e51b8152602060048201526024808201527f736c617368696e6720726174653a206c6f772063616e6e6f7420657863656564604482015263081b5a5960e21b60648201526084016100d2565b8060400151816020015111156103325760405162461bcd60e51b815260206004820152602560248201527f736c617368696e6720726174653a206d69642063616e6e6f7420657863656564604482015264040d0d2ced60db1b60648201526084016100d2565b61033e6004600a6108c9565b816040015111156103a85760405162461bcd60e51b815260206004820152602e60248201527f736c617368696e6720726174653a20686967682063616e6e6f7420657863656560448201526d321039b1b0b632903330b1ba37b960911b60648201526084016100d2565b50565b6103b76004600a6108c9565b8151111561042d5760405162461bcd60e51b815260206004820152603960248201527f636f6c6c7573696f6e20666163746f722063616e6e6f7420657863656564207360448201527f6c617368696e672072617465207363616c6520666163746f720000000000000060648201526084016100d2565b6104396004600a6108c9565b816020015111156103a85760405162461bcd60e51b815260206004820152603760248201527f686973746f727920666163746f722063616e6e6f742065786365656420736c6160448201527f7368696e672072617465207363616c6520666163746f7200000000000000000060648201526084016100d2565b6001600160a01b03811681146103a857600080fd5b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b03811182821017156104ff576104ff6104c7565b60405290565b604051601f8201601f191681016001600160401b038111828210171561052d5761052d6104c7565b604052919050565b60006060828403121561054757600080fd5b61054f6104dd565b82518152602080840151908201526040928301519281019290925250919050565b60008082840361014081121561058557600080fd5b8351610590816104b2565b9250610120601f19820112156105a557600080fd5b5060405160a081016001600160401b03811182821017156105c8576105c86104c7565b6040908152602085810151835285820151908301526060850151908201526105f38560808601610535565b60608201526106058560e08601610535565b6080820152809150509250929050565b60006020828403121561062757600080fd5b81516001600160401b0381111561063d57600080fd5b8201601f8101841361064e57600080fd5b80516001600160401b03811115610667576106676104c7565b8060051b61067760208201610505565b9182526020818401810192908101908784111561069357600080fd5b6020850192505b838310156107a95782516001600160401b038111156106b857600080fd5b85016060818a03601f190112156106ce57600080fd5b6106d66104dd565b60208201516106e4816104b2565b81526040820151602082015260608201516001600160401b0381111561070957600080fd5b60208184010192505089601f83011261072157600080fd5b81516001600160401b0381111561073a5761073a6104c7565b61074d601f8201601f1916602001610505565b8181528b602083860101111561076257600080fd5b60005b8281101561078157602081860181015183830182015201610765565b506000602083830101528060408401525050808452505060208201915060208301925061069a565b979650505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6001815b600184111561081b578085048111156107ff576107ff6107ca565b600184161561080d57908102905b60019390931c9280026107e4565b935093915050565b600082610832575060016108c3565b8161083f575060006108c3565b8160018114610855576002811461085f5761087b565b60019150506108c3565b60ff841115610870576108706107ca565b50506001821b6108c3565b5060208310610133831016604e8410600b841016171561089e575081810a6108c3565b6108ab60001984846107e0565b80600019048211156108bf576108bf6107ca565b0290505b92915050565b60006108d58383610823565b9392505050565b6156fd806108eb6000396000f3fe6080604052600436106101755760003560e01c80638975e977116100cb578063a8031a1d1161007f578063dbd1838811610059578063dbd183881461044d578063e05f878614610462578063e08b14ed1461048257600080fd5b8063a8031a1d146103eb578063bebaa8fc146103fe578063c3f909d41461042b57600080fd5b8063a2652078116100b0578063a26520781461038b578063a48a9b50146103ab578063a6b0aaae146103cb57600080fd5b80638975e9771461034b5780639cb22b061461036b57600080fd5b8063505a1b311161012d5780636d1884e0116101075780636d1884e0146102c75780637ccecadd146102f4578063803968111461032b57600080fd5b8063505a1b31146102345780636a91991b1461026c5780636c9789b01461028c57600080fd5b80634108a95a1161015e5780634108a95a146101bc578063433afda8146101f157806347fc216e1461021157600080fd5b8063025ff0a51461017a5780631e85f2e51461019c575b600080fd5b34801561018657600080fd5b5061019a61019536600461483e565b6104a2565b005b3480156101a857600080fd5b5061019a6101b73660046149fd565b610676565b3480156101c857600080fd5b506101dc6101d7366004614ae9565b6107dc565b60405190151581526020015b60405180910390f35b3480156101fd57600080fd5b5061019a61020c36600461483e565b61097f565b34801561021d57600080fd5b50610226610ad8565b6040519081526020016101e8565b34801561024057600080fd5b5061025461024f366004614b28565b610b39565b6040516001600160a01b0390911681526020016101e8565b34801561027857600080fd5b5061019a61028736600461483e565b610bb5565b34801561029857600080fd5b506102ac6102a7366004614b53565b610e79565b604080519384526020840192909252908201526060016101e8565b3480156102d357600080fd5b506102e76102e236600461483e565b610f9e565b6040516101e89190614ce4565b34801561030057600080fd5b5061031461030f366004614ae9565b6111d9565b6040805192151583526020830191909152016101e8565b34801561033757600080fd5b50610226610346366004614b28565b61141f565b34801561035757600080fd5b5061019a610366366004614d50565b611495565b34801561037757600080fd5b506102e7610386366004614b28565b6115cb565b34801561039757600080fd5b5061019a6103a6366004614d50565b611722565b3480156103b757600080fd5b5061019a6103c63660046149fd565b611858565b3480156103d757600080fd5b506102266103e6366004614d6c565b6119d7565b61019a6103f9366004614d6c565b611a5d565b34801561040a57600080fd5b5061041e610419366004614b28565b611e42565b6040516101e89190614d98565b34801561043757600080fd5b50610440612169565b6040516101e89190614e1b565b34801561045957600080fd5b50610226612233565b34801561046e57600080fd5b5061019a61047d3660046149fd565b612294565b34801561048e57600080fd5b5061019a61049d366004614e89565b612412565b600054604080517fe7f43c68000000000000000000000000000000000000000000000000000000008152905133926001600160a01b03169163e7f43c689160048083019260209291908290030181865afa158015610504573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105289190614f4d565b6001600160a01b0316146105835760405162461bcd60e51b815260206004820152601a60248201527f63616c6c6572206973206e6f7420746865206f70657261746f7200000000000060448201526064015b60405180910390fd5b600c5481106105f95760405162461bcd60e51b8152602060048201526024808201527f64656c7461206e6565647320746f20626520736d616c6c6572207468616e207260448201527f616e676500000000000000000000000000000000000000000000000000000000606482015260840161057a565b6004546040805160808082526005908201527f64656c746100000000000000000000000000000000000000000000000000000060a0820152602081019290925281018290524360608201527f207e45ce6f2191c3efffe5d0d91591cf81afd23cbf4bd746981d7a8a8dcfe1ba9060c00160405180910390a1600d55565b61067e612598565b3360009081526015602052604090205460ff1615156001146107085760405162461bcd60e51b815260206004820152602960248201527f66756e6374696f6e207265737472696374656420746f206120636f6d6d69747460448201527f6565206d656d6265720000000000000000000000000000000000000000000000606482015260840161057a565b60408101516001600160a01b031633146107645760405162461bcd60e51b815260206004820152601d60248201527f6576656e74207265706f72746572206d7573742062652063616c6c6572000000604482015260640161057a565b60018151600281111561077957610779614b70565b146107c65760405162461bcd60e51b815260206004820152601f60248201527f77726f6e67206576656e74207479706520666f722061636375736174696f6e00604482015260640161057a565b6107cf816125ee565b6107d96000600155565b50565b60006107e9600180541490565b156108365760405162461bcd60e51b815260206004820152601d60248201527f72656164206f6e6c79207265656e7472616e6379206465746563746564000000604482015260640161057a565b600083600981111561084a5761084a614b70565b1015801561086a5750600983600981111561086757610867614b70565b11155b6108b65760405162461bcd60e51b815260206004820152601560248201527f72756c65206964206d7573742062652076616c69640000000000000000000000604482015260640161057a565b60006108c1846127ea565b600080546040517f96b477cb0000000000000000000000000000000000000000000000000000000081526004810187905292935090916001600160a01b03909116906396b477cb90602401602060405180830381865afa158015610929573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094d9190614f6a565b6001600160a01b03871660009081526016602090815260408083209383529290522054919091109150505b9392505050565b600054604080517fe7f43c68000000000000000000000000000000000000000000000000000000008152905133926001600160a01b03169163e7f43c689160048083019260209291908290030181865afa1580156109e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a059190614f4d565b6001600160a01b031614610a5b5760405162461bcd60e51b815260206004820152601a60248201527f63616c6c6572206973206e6f7420746865206f70657261746f72000000000000604482015260640161057a565b600354604080516080808252601e908201527f696e6e6f63656e636550726f6f665375626d697373696f6e57696e646f77000060a0820152602081019290925281018290524360608201527f207e45ce6f2191c3efffe5d0d91591cf81afd23cbf4bd746981d7a8a8dcfe1ba9060c00160405180910390a1600355565b6000610ae5600180541490565b15610b325760405162461bcd60e51b815260206004820152601d60248201527f72656164206f6e6c79207265656e7472616e6379206465746563746564000000604482015260640161057a565b5060025490565b6000610b46600180541490565b15610b935760405162461bcd60e51b815260206004820152601d60248201527f72656164206f6e6c79207265656e7472616e6379206465746563746564000000604482015260640161057a565b506001600160a01b038082166000908152600f6020526040902054165b919050565b600054604080517fe7f43c68000000000000000000000000000000000000000000000000000000008152905133926001600160a01b03169163e7f43c689160048083019260209291908290030181865afa158015610c17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3b9190614f4d565b6001600160a01b031614610c915760405162461bcd60e51b815260206004820152601a60248201527f63616c6c6572206973206e6f7420746865206f70657261746f72000000000000604482015260640161057a565b600e5415610d075760405162461bcd60e51b815260206004820152602a60248201527f6865696768742072616e6765206368616e676520697320616c7265616479206960448201527f6e2070726f677265737300000000000000000000000000000000000000000000606482015260840161057a565b610d12600482614fb2565b15610d845760405162461bcd60e51b8152602060048201526024808201527f6865696768742072616e6765206d7573742062652061206d756c7469706c652060448201527f6f66203400000000000000000000000000000000000000000000000000000000606482015260840161057a565b600d548111610dfb5760405162461bcd60e51b815260206004820152602b60248201527f6865696768742072616e6765206e6565647320746f206265206772656174657260448201527f207468616e2064656c7461000000000000000000000000000000000000000000606482015260840161057a565b600580546040805160808082528101939093527f72616e676500000000000000000000000000000000000000000000000000000060a0840152602083019190915281018290524360608201527f207e45ce6f2191c3efffe5d0d91591cf81afd23cbf4bd746981d7a8a8dcfe1ba9060c00160405180910390a1600c55565b6000806000610e86612598565b6000546001600160a01b03163314610f065760405162461bcd60e51b815260206004820152602860248201527f66756e6374696f6e207265737472696374656420746f204175746f6e6974792060448201527f636f6e7472616374000000000000000000000000000000000000000000000000606482015260840161057a565b610f0e612975565b8315610f1c57610f1c612d30565b600e5415610f3a57600e8054906000610f3483614ff5565b91905055505b600554600c541115610f7457600554600c54600091610f589161502a565b9050610f6560048261503d565b610f6f908261502a565b600e55505b5050600c546005819055600d546004819055600e5491925090610f976000600155565b9193909250565b61100760408051610140810190915280600081526020016000815260200160006001600160a01b0316815260200160006001600160a01b031681526020016060815260200160008152602001600081526020016000815260200160008152602001600081525090565b60018054036110585760405162461bcd60e51b815260206004820152601d60248201527f72656164206f6e6c79207265656e7472616e6379206465746563746564000000604482015260640161057a565b6002828154811061106b5761106b615051565b600091825260209091206040805161014081019091526008909202018054829060ff16600281111561109f5761109f614b70565b60028111156110b0576110b0614b70565b81528154602090910190610100900460ff1660098111156110d3576110d3614b70565b60098111156110e4576110e4614b70565b815281546001600160a01b036201000090910481166020830152600183015416604082015260028201805460609092019161111e90615080565b80601f016020809104026020016040519081016040528092919081815260200182805461114a90615080565b80156111975780601f1061116c57610100808354040283529160200191611197565b820191906000526020600020905b81548152906001019060200180831161117a57829003601f168201915b50505050508152602001600382015481526020016004820154815260200160058201548152602001600682015481526020016007820154815250509050919050565b6000806111e7600180541490565b156112345760405162461bcd60e51b815260206004820152601d60248201527f72656164206f6e6c79207265656e7472616e6379206465746563746564000000604482015260640161057a565b600084600981111561124857611248614b70565b101580156112685750600984600981111561126557611265614b70565b11155b6112b45760405162461bcd60e51b815260206004820152601560248201527f72756c65206964206d7573742062652076616c69640000000000000000000000604482015260640161057a565b60006112bf856127ea565b600080546040517f96b477cb0000000000000000000000000000000000000000000000000000000081526004810188905292935090916001600160a01b03909116906396b477cb90602401602060405180830381865afa158015611327573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134b9190614f6a565b6001600160a01b03881660009081526016602090815260408083208484529091529020549091508211611385576000935060009250611415565b6001600160a01b0387166000908152601260205260409020541561140c576001600160a01b0387166000908152601260205260408120546002906113cb9060019061502a565b815481106113db576113db615051565b9060005260206000209060080201905060009450600360000154816006015461140491906150d3565b935050611415565b60019350600092505b5050935093915050565b600061142c600180541490565b156114795760405162461bcd60e51b815260206004820152601d60248201527f72656164206f6e6c79207265656e7472616e6379206465746563746564000000604482015260640161057a565b506001600160a01b031660009081526011602052604090205490565b600054604080517fe7f43c68000000000000000000000000000000000000000000000000000000008152905133926001600160a01b03169163e7f43c689160048083019260209291908290030181865afa1580156114f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061151b9190614f4d565b6001600160a01b0316146115715760405162461bcd60e51b815260206004820152601a60248201527f63616c6c6572206973206e6f7420746865206f70657261746f72000000000000604482015260640161057a565b61157a81613067565b6040517feda1502b5625ce16270e5a5f5561c68dfecaef2c5eacc1cc9521fad59c34d82f906115ad9060099084906150e6565b60405180910390a180516009556020810151600a5560400151600b55565b61163460408051610140810190915280600081526020016000815260200160006001600160a01b0316815260200160006001600160a01b031681526020016060815260200160008152602001600081526020016000815260200160008152602001600081525090565b60018054036116855760405162461bcd60e51b815260206004820152601d60248201527f72656164206f6e6c79207265656e7472616e6379206465746563746564000000604482015260640161057a565b6001600160a01b0382166000908152601260205260409020546116ea5760405162461bcd60e51b815260206004820152600d60248201527f6e6f2061636375736174696f6e00000000000000000000000000000000000000604482015260640161057a565b6001600160a01b0382166000908152601260205260409020546002906117129060019061502a565b8154811061106b5761106b615051565b600054604080517fe7f43c68000000000000000000000000000000000000000000000000000000008152905133926001600160a01b03169163e7f43c689160048083019260209291908290030181865afa158015611784573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a89190614f4d565b6001600160a01b0316146117fe5760405162461bcd60e51b815260206004820152601a60248201527f63616c6c6572206973206e6f7420746865206f70657261746f72000000000000604482015260640161057a565b6118078161316e565b6040517f6fea73568c60fe418d5e4d1a9fde6dce66d8816ffcebe91449e9bf1098a5ce1a9061183a9060069084906150e6565b60405180910390a18051600655602081015160075560400151600855565b611860612598565b3360009081526015602052604090205460ff1615156001146118ea5760405162461bcd60e51b815260206004820152602960248201527f66756e6374696f6e207265737472696374656420746f206120636f6d6d69747460448201527f6565206d656d6265720000000000000000000000000000000000000000000000606482015260840161057a565b60408101516001600160a01b031633146119465760405162461bcd60e51b815260206004820152601d60248201527f6576656e74207265706f72746572206d7573742062652063616c6c6572000000604482015260640161057a565b60008151600281111561195b5761195b614b70565b146119ce5760405162461bcd60e51b815260206004820152602160248201527f77726f6e67206576656e74207479706520666f72206d69736265686176696f7560448201527f7200000000000000000000000000000000000000000000000000000000000000606482015260840161057a565b6107cf816132eb565b60006119e4600180541490565b15611a315760405162461bcd60e51b815260206004820152601d60248201527f72656164206f6e6c79207265656e7472616e6379206465746563746564000000604482015260640161057a565b506001600160a01b03821660009081526016602090815260408083208484529091529020545b92915050565b611a65612598565b6000546001600160a01b03163314611ae55760405162461bcd60e51b815260206004820152602860248201527f66756e6374696f6e207265737472696374656420746f204175746f6e6974792060448201527f636f6e7472616374000000000000000000000000000000000000000000000000606482015260840161057a565b6001600160a01b038281166000908152600f602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000008116909155825491517f1904bb2e0000000000000000000000000000000000000000000000000000000081529084166004820181905234949093921690631904bb2e90602401600060405180830381865afa158015611b85573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052611bcb9190810190615181565b90508315611c5f576000805460208301516040517ff7fcc5100000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152602481018890526044810193909352169063f7fcc51090606401600060405180830381600087803b158015611c4657600080fd5b505af1158015611c5a573d6000803e3d6000fd5b505050505b8215611ddf5780516040516000916001600160a01b0316906108fc90869084818181858888f193505050503d8060008114611cb6576040519150601f19603f3d011682016040523d82523d6000602084013e611cbb565b606091505b5050905080611ddd5760008060009054906101000a90046001600160a01b03166001600160a01b031663f7866ee36040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d3c9190614f4d565b9050600080826001600160a01b03168760405160006040518083038185875af1925050503d8060008114611d8c576040519150601f19603f3d011682016040523d82523d6000602084013e611d91565b606091505b509150915081611dd5577f1137d8c966ce69b9630fb2294be011f3d64cc56e91fad7d375f0662568e9d3528382604051611dcc929190615307565b60405180910390a15b600096505050505b505b602080820151604080516001600160a01b03928316815292830187905282018590528616907fd7bd322f319b32cbf0c40184f51d4204b4e08b1c95ca79f470747483881840e99060600160405180910390a2505050611e3e6000600155565b5050565b6060611e4f600180541490565b15611e9c5760405162461bcd60e51b815260206004820152601d60248201527f72656164206f6e6c79207265656e7472616e6379206465746563746564000000604482015260640161057a565b6001600160a01b03821660009081526010602052604081205467ffffffffffffffff811115611ecd57611ecd614857565b604051908082528060200260200182016040528015611f6757816020015b611f5460408051610140810190915280600081526020016000815260200160006001600160a01b0316815260200160006001600160a01b031681526020016060815260200160008152602001600081526020016000815260200160008152602001600081525090565b815260200190600190039081611eeb5790505b50905060005b6001600160a01b038416600090815260106020526040902054811015612162576001600160a01b038416600090815260106020526040902080546002919083908110611fbb57611fbb615051565b906000526020600020015481548110611fd657611fd6615051565b600091825260209091206040805161014081019091526008909202018054829060ff16600281111561200a5761200a614b70565b600281111561201b5761201b614b70565b81528154602090910190610100900460ff16600981111561203e5761203e614b70565b600981111561204f5761204f614b70565b815281546001600160a01b036201000090910481166020830152600183015416604082015260028201805460609092019161208990615080565b80601f01602080910402602001604051908101604052809291908181526020018280546120b590615080565b80156121025780601f106120d757610100808354040283529160200191612102565b820191906000526020600020905b8154815290600101906020018083116120e557829003601f168201915b505050505081526020016003820154815260200160048201548152602001600582015481526020016006820154815260200160078201548152505082828151811061214f5761214f615051565b6020908102919091010152600101611f6d565b5092915050565b6121716146be565b60018054036121c25760405162461bcd60e51b815260206004820152601d60248201527f72656164206f6e6c79207265656e7472616e6379206465746563746564000000604482015260640161057a565b506040805160a0810182526003548152600454602080830191909152600554828401528251606081810185526006548252600754828401526008548286015280840191909152835190810184526009548152600a5491810191909152600b5492810192909252608081019190915290565b6000612240600180541490565b1561228d5760405162461bcd60e51b815260206004820152601d60248201527f72656164206f6e6c79207265656e7472616e6379206465746563746564000000604482015260640161057a565b50600e5490565b61229c612598565b3360009081526015602052604090205460ff1615156001146123265760405162461bcd60e51b815260206004820152602960248201527f66756e6374696f6e207265737472696374656420746f206120636f6d6d69747460448201527f6565206d656d6265720000000000000000000000000000000000000000000000606482015260840161057a565b60408101516001600160a01b031633146123825760405162461bcd60e51b815260206004820152601d60248201527f6576656e74207265706f72746572206d7573742062652063616c6c6572000000604482015260640161057a565b60028151600281111561239757612397614b70565b146124095760405162461bcd60e51b8152602060048201526024808201527f77726f6e67206576656e74207479706520666f7220696e6e6f63656e6365207060448201527f726f6f6600000000000000000000000000000000000000000000000000000000606482015260840161057a565b6107cf81613570565b61241a612598565b6000546001600160a01b0316331461249a5760405162461bcd60e51b815260206004820152602860248201527f66756e6374696f6e207265737472696374656420746f204175746f6e6974792060448201527f636f6e7472616374000000000000000000000000000000000000000000000000606482015260840161057a565b6124fd60138054806020026020016040519081016040528092919081815260200182805480156124f357602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116124d5575b505050505061371d565b612560601480548060200260200160405190810160405280929190818152602001828054801561255657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612538575b50505050506137d3565b6014805461257091601391614730565b5061257a816137d3565b805161258d906014906020840190614780565b506107d96000600155565b600154156125e85760405162461bcd60e51b815260206004820152601360248201527f7265656e7472616e637920646574656374656400000000000000000000000000604482015260640161057a565b60018055565b60008060008060006126128660800151600360020154600360010154600e54613885565b94509450945094509450846126695760405162461bcd60e51b815260206004820152601e60248201527f6661696c65642061636375736174696f6e20766572696669636174696f6e0000604482015260640161057a565b85606001516001600160a01b0316846001600160a01b0316146126ce5760405162461bcd60e51b815260206004820152601160248201527f6f6666656e646572206d69736d61746368000000000000000000000000000000604482015260640161057a565b856020015160098111156126e4576126e4614b70565b83146127325760405162461bcd60e51b815260206004820152601060248201527f72756c65206964206d69736d6174636800000000000000000000000000000000604482015260640161057a565b600080546040517f96b477cb000000000000000000000000000000000000000000000000000000008152600481018590526001600160a01b03909116906396b477cb90602401602060405180830381865afa158015612795573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127b99190614f6a565b60c0880184905260e0880181905243610100890152610120880183905290506127e187613911565b50505050505050565b6000600982600981111561280057612800614b70565b0361280d57600192915050565b600082600981111561282157612821614b70565b0361282d576002611a57565b600182600981111561284157612841614b70565b0361284d576002611a57565b600282600981111561286157612861614b70565b0361286d576002611a57565b600382600981111561288157612881614b70565b0361288d576002611a57565b60048260098111156128a1576128a1614b70565b036128ad576002611a57565b60058260098111156128c1576128c1614b70565b036128cd576002611a57565b60068260098111156128e1576128e1614b70565b036128ed576002611a57565b600782600981111561290157612901614b70565b0361290d576003611a57565b600882600981111561292157612921614b70565b0361292d576003611a57565b60405162461bcd60e51b815260206004820152600c60248201527f756e6b6e6f776e2072756c650000000000000000000000000000000000000000604482015260640161057a565b60195460008054604080517f6fc5351500000000000000000000000000000000000000000000000000000000815290516001600160a01b0390921691636fc53515916004808201926020929091908290030181865afa1580156129dc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a009190614f6a565b90505b601854821015612d2a57600060188381548110612a2257612a22615051565b9060005260206000200154905080600003612a3d5750612d1f565b612a4860018261502a565b9050600060028281548110612a5f57612a5f615051565b600091825260209091206040805161014081019091526008909202018054829060ff166002811115612a9357612a93614b70565b6002811115612aa457612aa4614b70565b81528154602090910190610100900460ff166009811115612ac757612ac7614b70565b6009811115612ad857612ad8614b70565b815281546001600160a01b0362010000909104811660208301526001830154166040820152600282018054606090920191612b1290615080565b80601f0160208091040260200160405190810160405280929190818152602001828054612b3e90615080565b8015612b8b5780601f10612b6057610100808354040283529160200191612b8b565b820191906000526020600020905b815481529060010190602001808311612b6e57829003601f168201915b5050505050815260200160038201548152602001600482015481526020016005820154815260200160068201548152602001600782015481525050905043600360000154826101000151612bdf91906150d3565b1115612bec575050612d2a565b60608101516001600160a01b031660009081526012602090815260408220829055820151612c19906127ea565b60608301516001600160a01b0316600090815260166020908152604080832060e087015184529091529020549091508111612c5657505050612d1f565b606082810180516001600160a01b03908116600090815260166020908152604080832060e08901518452825280832087905584518416835260108252808320805460018082018355918552838520018a90556017805491820181559093527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c159092018890559251815186815293840188905290830188905216917f5fd9605880705541b88eb5df56222ffa3c3e6884010fcf26d4c2c372917d98d7910160405180910390a25050505b600190910190612a03565b50601955565b60008054604080517f6fc53515000000000000000000000000000000000000000000000000000000008152905183926001600160a01b031691636fc535159160048083019260209291908290030181865afa158015612d93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612db79190614f6a565b905060005b601754811015612e245781600260178381548110612ddc57612ddc615051565b906000526020600020015481548110612df757612df7615051565b90600052602060002090600802016005015403612e1c57612e196001846150d3565b92505b600101612dbc565b5060008060009054906101000a90046001600160a01b03166001600160a01b0316630aac2da16040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e9d9190614f6a565b905060005b6017548110156130555761304d600260178381548110612ec457612ec4615051565b906000526020600020015481548110612edf57612edf615051565b600091825260209091206040805161014081019091526008909202018054829060ff166002811115612f1357612f13614b70565b6002811115612f2457612f24614b70565b81528154602090910190610100900460ff166009811115612f4757612f47614b70565b6009811115612f5857612f58614b70565b815281546001600160a01b0362010000909104811660208301526001830154166040820152600282018054606090920191612f9290615080565b80601f0160208091040260200160405190810160405280929190818152602001828054612fbe90615080565b801561300b5780601f10612fe05761010080835404028352916020019161300b565b820191906000526020600020905b815481529060010190602001808311612fee57829003601f168201915b50505050508152602001600382015481526020016004820154815260200160058201548152602001600682015481526020016007820154815250508584613c58565b600101612ea2565b50613062601760006147ed565b505050565b6130736004600a615462565b815111156130e95760405162461bcd60e51b815260206004820152603960248201527f636f6c6c7573696f6e20666163746f722063616e6e6f7420657863656564207360448201527f6c617368696e672072617465207363616c6520666163746f7200000000000000606482015260840161057a565b6130f56004600a615462565b816020015111156107d95760405162461bcd60e51b815260206004820152603760248201527f686973746f727920666163746f722063616e6e6f742065786365656420736c6160448201527f7368696e672072617465207363616c6520666163746f72000000000000000000606482015260840161057a565b6020810151815111156131e85760405162461bcd60e51b8152602060048201526024808201527f736c617368696e6720726174653a206c6f772063616e6e6f742065786365656460448201527f206d696400000000000000000000000000000000000000000000000000000000606482015260840161057a565b8060400151816020015111156132665760405162461bcd60e51b815260206004820152602560248201527f736c617368696e6720726174653a206d69642063616e6e6f742065786365656460448201527f2068696768000000000000000000000000000000000000000000000000000000606482015260840161057a565b6132726004600a615462565b816040015111156107d95760405162461bcd60e51b815260206004820152602e60248201527f736c617368696e6720726174653a20686967682063616e6e6f7420657863656560448201527f64207363616c6520666163746f72000000000000000000000000000000000000606482015260840161057a565b600080600080600061330260fe8760800151613f1d565b94509450945094509450846133595760405162461bcd60e51b815260206004820152601960248201527f6661696c65642070726f6f6620766572696669636174696f6e00000000000000604482015260640161057a565b85606001516001600160a01b0316846001600160a01b0316146133be5760405162461bcd60e51b815260206004820152601160248201527f6f6666656e646572206d69736d61746368000000000000000000000000000000604482015260640161057a565b856020015160098111156133d4576133d4614b70565b83146134225760405162461bcd60e51b815260206004820152601060248201527f72756c65206964206d69736d6174636800000000000000000000000000000000604482015260640161057a565b4382106134715760405162461bcd60e51b815260206004820152601660248201527f63616e277420626520696e207468652066757475726500000000000000000000604482015260640161057a565b600082116134c15760405162461bcd60e51b815260206004820152601360248201527f63616e27742062652061742067656e6573697300000000000000000000000000604482015260640161057a565b600080546040517f96b477cb000000000000000000000000000000000000000000000000000000008152600481018590526001600160a01b03909116906396b477cb90602401602060405180830381865afa158015613524573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135489190614f6a565b60c0880184905260e0880181905243610100890152610120880183905290506127e187613f76565b600080600080600061358760fd8760800151613f1d565b94509450945094509450846135de5760405162461bcd60e51b815260206004820152601d60248201527f6661696c656420696e6e6f63656e636520766572696669636174696f6e000000604482015260640161057a565b85606001516001600160a01b0316846001600160a01b0316146136435760405162461bcd60e51b815260206004820152601160248201527f6f6666656e646572206d69736d61746368000000000000000000000000000000604482015260640161057a565b8560200151600981111561365957613659614b70565b83146136a75760405162461bcd60e51b815260206004820152601060248201527f72756c65206964206d69736d6174636800000000000000000000000000000000604482015260640161057a565b4382106136f65760405162461bcd60e51b815260206004820152601660248201527f63616e277420626520696e207468652066757475726500000000000000000000604482015260640161057a565b60c08601829052610120860181905243610100870152613715866142ff565b505050505050565b60005b8151811015611e3e576015600083838151811061373f5761373f615051565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff16156137cb576015600083838151811061378157613781615051565b6020908102919091018101516001600160a01b0316825281019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b600101613720565b60005b8151811015611e3e57601560008383815181106137f5576137f5615051565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff16151560011461387d5760016015600084848151811061383d5761383d615051565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055505b6001016137d6565b60008060008060008060fc905060008989898d6040516020016138ab949392919061546e565b60405160208183030381529060405290506138c461480b565b60a081835160208501865afa6138d957600080fd5b80516001036138e757600197505b602081015160408201516060830151608090930151999e919d509b50909950969750505050505050565b60608101516001600160a01b03166000908152601260205260409020541561397b5760405162461bcd60e51b815260206004820181905260248201527f616c72656164792070726f63657373696e6720616e2061636375736174696f6e604482015260640161057a565b600061398a82602001516127ea565b60608301516001600160a01b0316600090815260166020908152604080832060e087015184529091529020549091508111613a2c5760405162461bcd60e51b8152602060048201526024808201527f616c726561647920736c6173686564206174207468652070726f6f662773206560448201527f706f636800000000000000000000000000000000000000000000000000000000606482015260840161057a565b6002805460a08401819052600180820183556000839052845160089092027f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace018054869491939284927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00909216918490811115613aab57613aab614b70565b02179055506020820151815482907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100836009811115613af057613af0614b70565b0217905550604082015181547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b039283160217825560608301516001830180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169190921617905560808201516002820190613b7990826154f0565b5060a082810151600383015560c0830151600483015560e08301516005830155610100830151600683015561012090920151600790910155820151613bbf9060016150d3565b60608301516001600160a01b031660009081526012602052604090205560a0820151601890613bef9060016150d3565b815460018101835560009283526020928390200155606083015160a084015160408051858152938401919091526001600160a01b03909116917f2e8e354b41470731dafa7c3df150e9498a8d5b9c51ff0259fbf77f721ba4035191015b60405180910390a25050565b60608301516040808501516001600160a01b038084166000818152600f60205284812080549484167fffffffffffffffffffffffff000000000000000000000000000000000000000090951694909417909355915492517f5b7d6c3600000000000000000000000000000000000000000000000000000000815260048101929092526003921690635b7d6c3690602401602060405180830381865afa158015613d05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d299190615609565b6005811115613d3a57613d3a614b70565b03613d455750505050565b6000613d5c613d5786602001516127ea565b614644565b600a546001600160a01b03841660009081526011602052604081205492935091613d869190615624565b600954613d939087615624565b613d9d90846150d3565b613da791906150d3565b6001600160a01b03841660009081526011602052604081208054929350600192909190613dd59084906150d3565b90915550506001600160a01b038316600090815260116020526040812054600b548691613e0191615624565b613e0b9190615624565b600080546040517f122b41220000000000000000000000000000000000000000000000000000000081529293509091829182916001600160a01b039091169063122b412290613e68908a908990899060029060039060040161564b565b6060604051808303816000875af1158015613e87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613eab919061568d565b60a0808e0151604080516001600160a01b038e168152602081018790529081018590528315156060820152608081019190915293965091945092507f6617e612ea2d01b5a235997fa4963b56b1097df6f968a82972433e9ff852e0f9910160405180910390a150505050505050505050565b6000806000806000613f2d61480b565b60a081885160208a018b5afa613f4257600080fd5b8051600103613f5057600195505b602081015160408201516060830151608090930151979a91995097509095945092505050565b6000613f8582602001516127ea565b60608301516001600160a01b0316600090815260166020908152604080832060e0870151845290915290205490915081116140275760405162461bcd60e51b8152602060048201526024808201527f616c726561647920736c6173686564206174207468652070726f6f662773206560448201527f706f636800000000000000000000000000000000000000000000000000000000606482015260840161057a565b6002805460a08401819052600180820183556000839052845160089092027f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace018054869491939284927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009092169184908111156140a6576140a6614b70565b02179055506020820151815482907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101008360098111156140eb576140eb614b70565b0217905550604082015181547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b039283160217825560608301516001830180547fffffffffffffffffffffffff000000000000000000000000000000000000000016919092161790556080820151600282019061417490826154f0565b5060a082810151600383015560c083015160048084019190915560e08085015160058501556101008501516006850155610120909401516007909301929092556060850180516001600160a01b039081166000908152601060209081526040808320958a018051875460018181018a559886528486200155805160178054988901815585527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c159097019690965584518416835260168252808320978a0151835296815286822088905592519351905486517f6fc535150000000000000000000000000000000000000000000000000000000081529651948316967f5fd9605880705541b88eb5df56222ffa3c3e6884010fcf26d4c2c372917d98d796899693959290941693636fc535159382820193929091908290030181865afa1580156142c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142e49190614f6a565b60408051938452602084019290925290820152606001613c4c565b60608101516001600160a01b03166000908152601260205260408120549081900361436c5760405162461bcd60e51b815260206004820152601860248201527f6e6f206173736f6369617465642061636375736174696f6e0000000000000000604482015260640161057a565b8160200151600981111561438257614382614b70565b600261438f60018461502a565b8154811061439f5761439f615051565b6000918252602090912060089091020154610100900460ff1660098111156143c9576143c9614b70565b1461443c5760405162461bcd60e51b815260206004820152602760248201527f756e6d61746368696e672070726f6f6620616e642061636375736174696f6e2060448201527f72756c6520696400000000000000000000000000000000000000000000000000606482015260840161057a565b60c0820151600261444e60018461502a565b8154811061445e5761445e615051565b906000526020600020906008020160040154146144e35760405162461bcd60e51b815260206004820152602560248201527f756e6d61746368696e672070726f6f6620616e642061636375736174696f6e2060448201527f626c6f636b000000000000000000000000000000000000000000000000000000606482015260840161057a565b61012082015160026144f660018461502a565b8154811061450657614506615051565b9060005260206000209060080201600701541461458a5760405162461bcd60e51b8152602060048201526024808201527f756e6d61746368696e672070726f6f6620616e642061636375736174696f6e2060448201527f6861736800000000000000000000000000000000000000000000000000000000606482015260840161057a565b6019545b6018548110156145ea5781601882815481106145ac576145ac615051565b9060005260206000200154036145e2576000601882815481106145d1576145d1615051565b6000918252602090912001556145ea565b60010161458e565b506060820180516001600160a01b0390811660009081526012602090815260408083208390559351935191825292909116917f1fa96beb8dddcb7d4484dd00c4059e872439f7a474a2ecf49c430fc6e86c9e1f9101613c4c565b60006001820361465657505060065490565b6002820361466657505060075490565b6003820361467657505060085490565b60405162461bcd60e51b815260206004820152601060248201527f756e6b6e6f776e20736576657269747900000000000000000000000000000000604482015260640161057a565b6040518060a0016040528060008152602001600081526020016000815260200161470260405180606001604052806000815260200160008152602001600081525090565b815260200161472b60405180606001604052806000815260200160008152602001600081525090565b905290565b8280548282559060005260206000209081019282156147705760005260206000209182015b82811115614770578254825591600101919060010190614755565b5061477c929150614829565b5090565b828054828255906000526020600020908101928215614770579160200282015b8281111561477057825182547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039091161782556020909201916001909101906147a0565b50805460008255906000526020600020908101906107d99190614829565b6040518060a001604052806005906020820280368337509192915050565b5b8082111561477c576000815560010161482a565b60006020828403121561485057600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610140810167ffffffffffffffff811182821017156148aa576148aa614857565b60405290565b604051610280810167ffffffffffffffff811182821017156148aa576148aa614857565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561491b5761491b614857565b604052919050565b803560038110610bb057600080fd5b8035600a8110610bb057600080fd5b6001600160a01b03811681146107d957600080fd5b8035610bb081614941565b600067ffffffffffffffff82111561497b5761497b614857565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b600082601f8301126149b857600080fd5b81356149cb6149c682614961565b6148d4565b8181528460208386010111156149e057600080fd5b816020850160208301376000918101602001919091529392505050565b600060208284031215614a0f57600080fd5b813567ffffffffffffffff811115614a2657600080fd5b82016101408185031215614a3957600080fd5b614a41614886565b614a4a82614923565b8152614a5860208301614932565b6020820152614a6960408301614956565b6040820152614a7a60608301614956565b6060820152608082013567ffffffffffffffff811115614a9957600080fd5b614aa5868285016149a7565b60808301525060a0828101359082015260c0808301359082015260e08083013590820152610100808301359082015261012091820135918101919091529392505050565b600080600060608486031215614afe57600080fd5b8335614b0981614941565b9250614b1760208501614932565b929592945050506040919091013590565b600060208284031215614b3a57600080fd5b813561097881614941565b80151581146107d957600080fd5b600060208284031215614b6557600080fd5b813561097881614b45565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60038110614baf57614baf614b70565b9052565b600a8110614baf57614baf614b70565b60005b83811015614bde578181015183820152602001614bc6565b50506000910152565b60008151808452614bff816020860160208601614bc3565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b614c3c828251614b9f565b60006020820151614c506020850182614bb3565b506040820151614c6b60408501826001600160a01b03169052565b506060820151614c8660608501826001600160a01b03169052565b5060808201516101406080850152614ca2610140850182614be7565b905060a083015160a085015260c083015160c085015260e083015160e08501526101008301516101008501526101208301516101208501528091505092915050565b6020815260006109786020830184614c31565b600060608284031215614d0957600080fd5b6040516060810167ffffffffffffffff81118282101715614d2c57614d2c614857565b60409081528335825260208085013590830152928301359281019290925250919050565b600060608284031215614d6257600080fd5b6109788383614cf7565b60008060408385031215614d7f57600080fd5b8235614d8a81614941565b946020939093013593505050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015614e0f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452614dfa858351614c31565b94506020938401939190910190600101614dc0565b50929695505050505050565b6000610120820190508251825260208301516020830152604083015160408301526060830151614e6260608401828051825260208082015190830152604090810151910152565b5060809290920151805160c0830152602081015160e0830152604001516101009091015290565b600060208284031215614e9b57600080fd5b813567ffffffffffffffff811115614eb257600080fd5b8201601f81018413614ec357600080fd5b803567ffffffffffffffff811115614edd57614edd614857565b8060051b614eed602082016148d4565b91825260208184018101929081019087841115614f0957600080fd5b6020850194505b83851015614f375784359250614f2583614941565b82825260209485019490910190614f10565b979650505050505050565b8051610bb081614941565b600060208284031215614f5f57600080fd5b815161097881614941565b600060208284031215614f7c57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082614fc157614fc1614f83565b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008161500457615004614fc6565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b81810381811115611a5757611a57614fc6565b60008261504c5761504c614f83565b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600181811c9082168061509457607f821691505b6020821081036150cd577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b80820180821115611a5757611a57614fc6565b82548152600183015460208201526002830154604082015260c081018251606083015260208301516080830152604083015160a0830152610978565b600082601f83011261513357600080fd5b81516020830160006151476149c684614961565b905082815285838301111561515b57600080fd5b615169836020830184614bc3565b95945050505050565b805160068110610bb057600080fd5b60006020828403121561519357600080fd5b815167ffffffffffffffff8111156151aa57600080fd5b820161028081850312156151bd57600080fd5b6151c56148b0565b6151ce82614f42565b81526151dc60208301614f42565b60208201526151ed60408301614f42565b6040820152606082015167ffffffffffffffff81111561520c57600080fd5b61521886828501615122565b6060830152506080828101519082015260a0808301519082015260c0808301519082015260e08083015190820152610100808301519082015261012080830151908201526101408083015190820152610160808301519082015261527f6101808301614f42565b6101808201526101a082810151908201526101c080830151908201526101e08083015190820152610200808301519082015261022082015167ffffffffffffffff8111156152cc57600080fd5b6152d886828501615122565b610220830152506152ec6102408301615172565b61024082015261026091820151918101919091529392505050565b6001600160a01b038316815260606020820152600060608201526080604082015260006153376080830184614be7565b949350505050565b6001815b600184111561537a5780850481111561535e5761535e614fc6565b600184161561536c57908102905b60019390931c928002615343565b935093915050565b60008261539157506001611a57565b8161539e57506000611a57565b81600181146153b457600281146153be576153da565b6001915050611a57565b60ff8411156153cf576153cf614fc6565b50506001821b611a57565b5060208310610133831016604e8410600b84101617156153fd575081810a611a57565b6154287fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461533f565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561545a5761545a614fc6565b029392505050565b60006109788383615382565b84815283602082015282604082015260008251615492816060850160208701614bc3565b9190910160600195945050505050565b601f82111561306257806000526020600020601f840160051c810160208510156154c95750805b601f840160051c820191505b818110156154e957600081556001016154d5565b5050505050565b815167ffffffffffffffff81111561550a5761550a614857565b61551e816155188454615080565b846154a2565b6020601f821160018114615570576000831561553a5750848201515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600385901b1c1916600184901b1784556154e9565b6000848152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b828110156155be578785015182556020948501946001909201910161559e565b50848210156155fa57868401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b60f8161c191681555b50505050600190811b01905550565b60006020828403121561561b57600080fd5b61097882615172565b8082028115828204841417611a5757611a57614fc6565b60068110614baf57614baf614b70565b6001600160a01b0386168152602081018590526040810184905260a08101615676606083018561563b565b615683608083018461563b565b9695505050505050565b6000806000606084860312156156a257600080fd5b83516020850151604086015191945092506156bc81614b45565b80915050925092509256fea2646970667358221220ad4b1777f773d35cec8b0ef6dd00f3335d10be98178b15fdfa75523eb603570764736f6c634300081e0033")

var AccountabilityAbi, _ = abi.JSON(strings.NewReader(`[
   {
      "inputs" : [
         {
            "internalType" : "contract IAutonity",
            "name" : "_autonity",
            "type" : "address"
         },
         {
            "components" : [
               {
                  "internalType" : "uint256",
                  "name" : "innocenceProofSubmissionWindow",
                  "type" : "uint256"
               },
               {
                  "internalType" : "uint256",
                  "name" : "delta",
                  "type" : "uint256"
               },
               {
                  "internalType" : "uint256",
                  "name" : "range",
                  "type" : "uint256"
               },
               {
                  "components" : [
                     {
                        "internalType" : "uint256",
                        "name" : "low",
                        "type" : "uint256"
                     },
                     {
                        "internalType" : "uint256",
                        "name" : "mid",
                        "type" : "uint256"
                     },
                     {
                        "internalType" : "uint256",
                        "name" : "high",
                        "type" : "uint256"
                     }
                  ],
                  "internalType" : "struct IAccountability.BaseSlashingRates",
                  "name" : "baseSlashingRates",
                  "type" : "tuple"
               },
               {
                  "components" : [
                     {
                        "internalType" : "uint256",
                        "name" : "collusion",
                        "type" : "uint256"
                     },
                     {
                        "internalType" : "uint256",
                        "name" : "history",
                        "type" : "uint256"
                     },
                     {
                        "internalType" : "uint256",
                        "name" : "jail",
                        "type" : "uint256"
                     }
                  ],
                  "internalType" : "struct IAccountability.Factors",
                  "name" : "factors",
                  "type" : "tuple"
               }
            ],
            "internalType" : "struct IAccountability.Config",
            "name" : "_config",
            "type" : "tuple"
         }
      ],
      "stateMutability" : "nonpayable",
      "type" : "constructor"
   },
   {
      "anonymous" : false,
      "inputs" : [
         {
            "components" : [
               {
                  "internalType" : "uint256",
                  "name" : "collusion",
                  "type" : "uint256"
               },
               {
                  "internalType" : "uint256",
                  "name" : "history",
                  "type" : "uint256"
               },
               {
                  "internalType" : "uint256",
                  "name" : "jail",
                  "type" : "uint256"
               }
            ],
            "indexed" : false,
            "internalType" : "struct IAccountability.Factors",
            "name" : "oldFactors",
            "type" : "tuple"
         },
         {
            "components" : [
               {
                  "internalType" : "uint256",
                  "name" : "collusion",
                  "type" : "uint256"
               },
               {
                  "internalType" : "uint256",
                  "name" : "history",
                  "type" : "uint256"
               },
               {
                  "internalType" : "uint256",
                  "name" : "jail",
                  "type" : "uint256"
               }
            ],
            "indexed" : false,
            "internalType" : "struct IAccountability.Factors",
            "name" : "newFactors",
            "type" : "tuple"
         }
      ],
      "name" : "AccountabilityFactorsUpdate",
      "type" : "event"
   },
   {
      "anonymous" : false,
      "inputs" : [
         {
            "components" : [
               {
                  "internalType" : "uint256",
                  "name" : "low",
                  "type" : "uint256"
               },
               {
                  "internalType" : "uint256",
                  "name" : "mid",
                  "type" : "uint256"
               },
               {
                  "internalType" : "uint256",
                  "name" : "high",
                  "type" : "uint256"
               }
            ],
            "indexed" : false,
            "internalType" : "struct IAccountability.BaseSlashingRates",
            "name" : "oldRates",
            "type" : "tuple"
         },
         {
            "components" : [
               {
                  "internalType" : "uint256",
                  "name" : "low",
                  "type" : "uint256"
               },
               {
                  "internalType" : "uint256",
                  "name" : "mid",
                  "type" : "uint256"
               },
               {
                  "internalType" : "uint256",
                  "name" : "high",
                  "type" : "uint256"
               }
            ],
            "indexed" : false,
            "internalType" : "struct IAccountability.BaseSlashingRates",
            "name" : "newRates",
            "type" : "tuple"
         }
      ],
      "name" : "BaseSlashingRateUpdate",
      "type" : "event"
   },
   {
      "anonymous" : false,
      "inputs" : [
         {
            "indexed" : false,
            "internalType" : "address",
            "name" : "to",
            "type" : "address"
         },
         {
            "indexed" : false,
            "internalType" : "string",
            "name" : "methodSignature",
            "type" : "string"
         },
         {
            "indexed" : false,
            "internalType" : "bytes",
            "name" : "returnData",
            "type" : "bytes"
         }
      ],
      "name" : "CallFailed",
      "type" : "event"
   },
   {
      "anonymous" : false,
      "inputs" : [
         {
            "indexed" : false,
            "internalType" : "string",
            "name" : "name",
            "type" : "string"
         },
         {
            "indexed" : false,
            "internalType" : "address",
            "name" : "oldValue",
            "type" : "address"
         },
         {
            "indexed" : false,
            "internalType" : "address",
            "name" : "newValue",
            "type" : "address"
         },
         {
            "indexed" : false,
            "internalType" : "uint256",
            "name" : "appliesAtHeight",
            "type" : "uint256"
         }
      ],
      "name" : "ConfigUpdateAddress",
      "type" : "event"
   },
   {
      "anonymous" : false,
      "inputs" : [
         {
            "indexed" : false,
            "internalType" : "string",
            "name" : "name",
            "type" : "string"
         },
         {
            "indexed" : false,
            "internalType" : "bool",
            "name" : "oldValue",
            "type" : "bool"
         },
         {
            "indexed" : false,
            "internalType" : "bool",
            "name" : "newValue",
            "type" : "bool"
         },
         {
            "indexed" : false,
            "internalType" : "uint256",
            "name" : "appliesAtHeight",
            "type" : "uint256"
         }
      ],
      "name" : "ConfigUpdateBool",
      "type" : "event"
   },
   {
      "anonymous" : false,
      "inputs" : [
         {
            "indexed" : false,
            "internalType" : "string",
            "name" : "name",
            "type" : "string"
         },
         {
            "indexed" : false,
            "internalType" : "int256",
            "name" : "oldValue",
            "type" : "int256"
         },
         {
            "indexed" : false,
            "internalType" : "int256",
            "name" : "newValue",
            "type" : "int256"
         },
         {
            "indexed" : false,
            "internalType" : "uint256",
            "name" : "appliesAtHeight",
            "type" : "uint256"
         }
      ],
      "name" : "ConfigUpdateInt",
      "type" : "event"
   },
   {
      "anonymous" : false,
      "inputs" : [
         {
            "indexed" : false,
            "internalType" : "string",
            "name" : "name",
            "type" : "string"
         },
         {
            "indexed" : false,
            "internalType" : "uint256",
            "name" : "oldValue",
            "type" : "uint256"
         },
         {
            "indexed" : false,
            "internalType" : "uint256",
            "name" : "newValue",
            "type" : "uint256"
         },
         {
            "indexed" : false,
            "internalType" : "uint256",
            "name" : "appliesAtHeight",
            "type" : "uint256"
         }
      ],
      "name" : "ConfigUpdateUint",
      "type" : "event"
   },
   {
      "anonymous" : false,
      "inputs" : [
         {
            "indexed" : true,
            "internalType" : "address",
            "name" : "_offender",
            "type" : "address"
         },
         {
            "indexed" : false,
            "internalType" : "uint256",
            "name" : "_id",
            "type" : "uint256"
         }
      ],
      "name" : "InnocenceProven",
      "type" : "event"
   },
   {
      "anonymous" : false,
      "inputs" : [
         {
            "indexed" : true,
            "internalType" : "address",
            "name" : "_offender",
            "type" : "address"
         },
         {
            "indexed" : false,
            "internalType" : "uint256",
            "name" : "_severity",
            "type" : "uint256"
         },
         {
            "indexed" : false,
            "internalType" : "uint256",
            "name" : "_id",
            "type" : "uint256"
         }
      ],
      "name" : "NewAccusation",
      "type" : "event"
   },
   {
      "anonymous" : false,
      "inputs" : [
         {
            "indexed" : true,
            "internalType" : "address",
            "name" : "_offender",
            "type" : "address"
         },
         {
            "indexed" : false,
            "internalType" : "uint256",
            "name" : "_severity",
            "type" : "uint256"
         },
         {
            "indexed" : false,
            "internalType" : "uint256",
            "name" : "_id",
            "type" : "uint256"
         },
         {
            "indexed" : false,
            "internalType" : "uint256",
            "name" : "_epoch",
            "type" : "uint256"
         }
      ],
      "name" : "NewFaultProof",
      "type" : "event"
   },
   {
      "anonymous" : false,
      "inputs" : [
         {
            "indexed" : false,
            "internalType" : "address",
            "name" : "_reporter",
            "type" : "address"
         },
         {
            "indexed" : true,
            "internalType" : "address",
            "name" : "_offender",
            "type" : "address"
         },
         {
            "indexed" : false,
            "internalType" : "uint256",
            "name" : "_ntnReward",
            "type" : "uint256"
         },
         {
            "indexed" : false,
            "internalType" : "uint256",
            "name" : "_atnReward",
            "type" : "uint256"
         }
      ],
      "name" : "ReporterRewarded",
      "type" : "event"
   },
   {
      "anonymous" : false,
      "inputs" : [
         {
            "indexed" : false,
            "internalType" : "address",
            "name" : "validator",
            "type" : "address"
         },
         {
            "indexed" : false,
            "internalType" : "uint256",
            "name" : "amount",
            "type" : "uint256"
         },
         {
            "indexed" : false,
            "internalType" : "uint256",
            "name" : "releaseBlock",
            "type" : "uint256"
         },
         {
            "indexed" : false,
            "internalType" : "bool",
            "name" : "isJailbound",
            "type" : "bool"
         },
         {
            "indexed" : false,
            "internalType" : "uint256",
            "name" : "eventId",
            "type" : "uint256"
         }
      ],
      "name" : "SlashingEvent",
      "type" : "event"
   },
   {
      "inputs" : [
         {
            "internalType" : "address",
            "name" : "_offender",
            "type" : "address"
         },
         {
            "internalType" : "enum IAccountability.Rule",
            "name" : "_rule",
            "type" : "uint8"
         },
         {
            "internalType" : "uint256",
            "name" : "_block",
            "type" : "uint256"
         }
      ],
      "name" : "canAccuse",
      "outputs" : [
         {
            "internalType" : "bool",
            "name" : "_result",
            "type" : "bool"
         },
         {
            "internalType" : "uint256",
            "name" : "_deadline",
            "type" : "uint256"
         }
      ],
      "stateMutability" : "view",
      "type" : "function"
   },
   {
      "inputs" : [
         {
            "internalType" : "address",
            "name" : "_offender",
            "type" : "address"
         },
         {
            "internalType" : "enum IAccountability.Rule",
            "name" : "_rule",
            "type" : "uint8"
         },
         {
            "internalType" : "uint256",
            "name" : "_block",
            "type" : "uint256"
         }
      ],
      "name" : "canSlash",
      "outputs" : [
         {
            "internalType" : "bool",
            "name" : "",
            "type" : "bool"
         }
      ],
      "stateMutability" : "view",
      "type" : "function"
   },
   {
      "inputs" : [
         {
            "internalType" : "address",
            "name" : "_offender",
            "type" : "address"
         },
         {
            "internalType" : "uint256",
            "name" : "_ntnReward",
            "type" : "uint256"
         }
      ],
      "name" : "distributeRewards",
      "outputs" : [],
      "stateMutability" : "payable",
      "type" : "function"
   },
   {
      "inputs" : [
         {
            "internalType" : "bool",
            "name" : "_epochEnd",
            "type" : "bool"
         }
      ],
      "name" : "finalize",
      "outputs" : [
         {
            "internalType" : "uint256",
            "name" : "",
            "type" : "uint256"
         },
         {
            "internalType" : "uint256",
            "name" : "",
            "type" : "uint256"
         },
         {
            "internalType" : "uint256",
            "name" : "",
            "type" : "uint256"
         }
      ],
      "stateMutability" : "nonpayable",
      "type" : "function"
   },
   {
      "inputs" : [
         {
            "internalType" : "address",
            "name" : "_offender",
            "type" : "address"
         }
      ],
      "name" : "getBeneficiary",
      "outputs" : [
         {
            "internalType" : "address",
            "name" : "",
            "type" : "address"
         }
      ],
      "stateMutability" : "view",
      "type" : "function"
   },
   {
      "inputs" : [],
      "name" : "getConfig",
      "outputs" : [
         {
            "components" : [
               {
                  "internalType" : "uint256",
                  "name" : "innocenceProofSubmissionWindow",
                  "type" : "uint256"
               },
               {
                  "internalType" : "uint256",
                  "name" : "delta",
                  "type" : "uint256"
               },
               {
                  "internalType" : "uint256",
                  "name" : "range",
                  "type" : "uint256"
               },
               {
                  "components" : [
                     {
                        "internalType" : "uint256",
                        "name" : "low",
                        "type" : "uint256"
                     },
                     {
                        "internalType" : "uint256",
                        "name" : "mid",
                        "type" : "uint256"
                     },
                     {
                        "internalType" : "uint256",
                        "name" : "high",
                        "type" : "uint256"
                     }
                  ],
                  "internalType" : "struct IAccountability.BaseSlashingRates",
                  "name" : "baseSlashingRates",
                  "type" : "tuple"
               },
               {
                  "components" : [
                     {
                        "internalType" : "uint256",
                        "name" : "collusion",
                        "type" : "uint256"
                     },
                     {
                        "internalType" : "uint256",
                        "name" : "history",
                        "type" : "uint256"
                     },
                     {
                        "internalType" : "uint256",
                        "name" : "jail",
                        "type" : "uint256"
                     }
                  ],
                  "internalType" : "struct IAccountability.Factors",
                  "name" : "factors",
                  "type" : "tuple"
               }
            ],
            "internalType" : "struct IAccountability.Config",
            "name" : "",
            "type" : "tuple"
         }
      ],
      "stateMutability" : "view",
      "type" : "function"
   },
   {
      "inputs" : [
         {
            "internalType" : "uint256",
            "name" : "_id",
            "type" : "uint256"
         }
      ],
      "name" : "getEvent",
      "outputs" : [
         {
            "components" : [
               {
                  "internalType" : "enum IAccountability.EventType",
                  "name" : "eventType",
                  "type" : "uint8"
               },
               {
                  "internalType" : "enum IAccountability.Rule",
                  "name" : "rule",
                  "type" : "uint8"
               },
               {
                  "internalType" : "address",
                  "name" : "reporter",
                  "type" : "address"
               },
               {
                  "internalType" : "address",
                  "name" : "offender",
                  "type" : "address"
               },
               {
                  "internalType" : "bytes",
                  "name" : "rawProof",
                  "type" : "bytes"
               },
               {
                  "internalType" : "uint256",
                  "name" : "id",
                  "type" : "uint256"
               },
               {
                  "internalType" : "uint256",
                  "name" : "block",
                  "type" : "uint256"
               },
               {
                  "internalType" : "uint256",
                  "name" : "epoch",
                  "type" : "uint256"
               },
               {
                  "internalType" : "uint256",
                  "name" : "reportingBlock",
                  "type" : "uint256"
               },
               {
                  "internalType" : "uint256",
                  "name" : "messageHash",
                  "type" : "uint256"
               }
            ],
            "internalType" : "struct IAccountability.Event",
            "name" : "",
            "type" : "tuple"
         }
      ],
      "stateMutability" : "view",
      "type" : "function"
   },
   {
      "inputs" : [],
      "name" : "getEventsLength",
      "outputs" : [
         {
            "internalType" : "uint256",
            "name" : "",
            "type" : "uint256"
         }
      ],
      "stateMutability" : "view",
      "type" : "function"
   },
   {
      "inputs" : [],
      "name" : "getGracePeriod",
      "outputs" : [
         {
            "internalType" : "uint256",
            "name" : "",
            "type" : "uint256"
         }
      ],
      "stateMutability" : "view",
      "type" : "function"
   },
   {
      "inputs" : [
         {
            "internalType" : "address",
            "name" : "_validator",
            "type" : "address"
         }
      ],
      "name" : "getHistory",
      "outputs" : [
         {
            "internalType" : "uint256",
            "name" : "",
            "type" : "uint256"
         }
      ],
      "stateMutability" : "view",
      "type" : "function"
   },
   {
      "inputs" : [
         {
            "internalType" : "address",
            "name" : "_validator",
            "type" : "address"
         },
         {
            "internalType" : "uint256",
            "name" : "_epoch",
            "type" : "uint256"
         }
      ],
      "name" : "getSlashingHistory",
      "outputs" : [
         {
            "internalType" : "uint256",
            "name" : "",
            "type" : "uint256"
         }
      ],
      "stateMutability" : "view",
      "type" : "function"
   },
   {
      "inputs" : [
         {
            "internalType" : "address",
            "name" : "_val",
            "type" : "address"
         }
      ],
      "name" : "getValidatorAccusation",
      "outputs" : [
         {
            "components" : [
               {
                  "internalType" : "enum IAccountability.EventType",
                  "name" : "eventType",
                  "type" : "uint8"
               },
               {
                  "internalType" : "enum IAccountability.Rule",
                  "name" : "rule",
                  "type" : "uint8"
               },
               {
                  "internalType" : "address",
                  "name" : "reporter",
                  "type" : "address"
               },
               {
                  "internalType" : "address",
                  "name" : "offender",
                  "type" : "address"
               },
               {
                  "internalType" : "bytes",
                  "name" : "rawProof",
                  "type" : "bytes"
               },
               {
                  "internalType" : "uint256",
                  "name" : "id",
                  "type" : "uint256"
               },
               {
                  "internalType" : "uint256",
                  "name" : "block",
                  "type" : "uint256"
               },
               {
                  "internalType" : "uint256",
                  "name" : "epoch",
                  "type" : "uint256"
               },
               {
                  "internalType" : "uint256",
                  "name" : "reportingBlock",
                  "type" : "uint256"
               },
               {
                  "internalType" : "uint256",
                  "name" : "messageHash",
                  "type" : "uint256"
               }
            ],
            "internalType" : "struct IAccountability.Event",
            "name" : "",
            "type" : "tuple"
         }
      ],
      "stateMutability" : "view",
      "type" : "function"
   },
   {
      "inputs" : [
         {
            "internalType" : "address",
            "name" : "_val",
            "type" : "address"
         }
      ],
      "name" : "getValidatorFaults",
      "outputs" : [
         {
            "components" : [
               {
                  "internalType" : "enum IAccountability.EventType",
                  "name" : "eventType",
                  "type" : "uint8"
               },
               {
                  "internalType" : "enum IAccountability.Rule",
                  "name" : "rule",
                  "type" : "uint8"
               },
               {
                  "internalType" : "address",
                  "name" : "reporter",
                  "type" : "address"
               },
               {
                  "internalType" : "address",
                  "name" : "offender",
                  "type" : "address"
               },
               {
                  "internalType" : "bytes",
                  "name" : "rawProof",
                  "type" : "bytes"
               },
               {
                  "internalType" : "uint256",
                  "name" : "id",
                  "type" : "uint256"
               },
               {
                  "internalType" : "uint256",
                  "name" : "block",
                  "type" : "uint256"
               },
               {
                  "internalType" : "uint256",
                  "name" : "epoch",
                  "type" : "uint256"
               },
               {
                  "internalType" : "uint256",
                  "name" : "reportingBlock",
                  "type" : "uint256"
               },
               {
                  "internalType" : "uint256",
                  "name" : "messageHash",
                  "type" : "uint256"
               }
            ],
            "internalType" : "struct IAccountability.Event[]",
            "name" : "",
            "type" : "tuple[]"
         }
      ],
      "stateMutability" : "view",
      "type" : "function"
   },
   {
      "inputs" : [
         {
            "components" : [
               {
                  "internalType" : "enum IAccountability.EventType",
                  "name" : "eventType",
                  "type" : "uint8"
               },
               {
                  "internalType" : "enum IAccountability.Rule",
                  "name" : "rule",
                  "type" : "uint8"
               },
               {
                  "internalType" : "address",
                  "name" : "reporter",
                  "type" : "address"
               },
               {
                  "internalType" : "address",
                  "name" : "offender",
                  "type" : "address"
               },
               {
                  "internalType" : "bytes",
                  "name" : "rawProof",
                  "type" : "bytes"
               },
               {
                  "internalType" : "uint256",
                  "name" : "id",
                  "type" : "uint256"
               },
               {
                  "internalType" : "uint256",
                  "name" : "block",
                  "type" : "uint256"
               },
               {
                  "internalType" : "uint256",
                  "name" : "epoch",
                  "type" : "uint256"
               },
               {
                  "internalType" : "uint256",
                  "name" : "reportingBlock",
                  "type" : "uint256"
               },
               {
                  "internalType" : "uint256",
                  "name" : "messageHash",
                  "type" : "uint256"
               }
            ],
            "internalType" : "struct IAccountability.Event",
            "name" : "_event",
            "type" : "tuple"
         }
      ],
      "name" : "handleAccusation",
      "outputs" : [],
      "stateMutability" : "nonpayable",
      "type" : "function"
   },
   {
      "inputs" : [
         {
            "components" : [
               {
                  "internalType" : "enum IAccountability.EventType",
                  "name" : "eventType",
                  "type" : "uint8"
               },
               {
                  "internalType" : "enum IAccountability.Rule",
                  "name" : "rule",
                  "type" : "uint8"
               },
               {
                  "internalType" : "address",
                  "name" : "reporter",
                  "type" : "address"
               },
               {
                  "internalType" : "address",
                  "name" : "offender",
                  "type" : "address"
               },
               {
                  "internalType" : "bytes",
                  "name" : "rawProof",
                  "type" : "bytes"
               },
               {
                  "internalType" : "uint256",
                  "name" : "id",
                  "type" : "uint256"
               },
               {
                  "internalType" : "uint256",
                  "name" : "block",
                  "type" : "uint256"
               },
               {
                  "internalType" : "uint256",
                  "name" : "epoch",
                  "type" : "uint256"
               },
               {
                  "internalType" : "uint256",
                  "name" : "reportingBlock",
                  "type" : "uint256"
               },
               {
                  "internalType" : "uint256",
                  "name" : "messageHash",
                  "type" : "uint256"
               }
            ],
            "internalType" : "struct IAccountability.Event",
            "name" : "_event",
            "type" : "tuple"
         }
      ],
      "name" : "handleInnocenceProof",
      "outputs" : [],
      "stateMutability" : "nonpayable",
      "type" : "function"
   },
   {
      "inputs" : [
         {
            "components" : [
               {
                  "internalType" : "enum IAccountability.EventType",
                  "name" : "eventType",
                  "type" : "uint8"
               },
               {
                  "internalType" : "enum IAccountability.Rule",
                  "name" : "rule",
                  "type" : "uint8"
               },
               {
                  "internalType" : "address",
                  "name" : "reporter",
                  "type" : "address"
               },
               {
                  "internalType" : "address",
                  "name" : "offender",
                  "type" : "address"
               },
               {
                  "internalType" : "bytes",
                  "name" : "rawProof",
                  "type" : "bytes"
               },
               {
                  "internalType" : "uint256",
                  "name" : "id",
                  "type" : "uint256"
               },
               {
                  "internalType" : "uint256",
                  "name" : "block",
                  "type" : "uint256"
               },
               {
                  "internalType" : "uint256",
                  "name" : "epoch",
                  "type" : "uint256"
               },
               {
                  "internalType" : "uint256",
                  "name" : "reportingBlock",
                  "type" : "uint256"
               },
               {
                  "internalType" : "uint256",
                  "name" : "messageHash",
                  "type" : "uint256"
               }
            ],
            "internalType" : "struct IAccountability.Event",
            "name" : "_event",
            "type" : "tuple"
         }
      ],
      "name" : "handleMisbehaviour",
      "outputs" : [],
      "stateMutability" : "nonpayable",
      "type" : "function"
   },
   {
      "inputs" : [
         {
            "components" : [
               {
                  "internalType" : "uint256",
                  "name" : "low",
                  "type" : "uint256"
               },
               {
                  "internalType" : "uint256",
                  "name" : "mid",
                  "type" : "uint256"
               },
               {
                  "internalType" : "uint256",
                  "name" : "high",
                  "type" : "uint256"
               }
            ],
            "internalType" : "struct IAccountability.BaseSlashingRates",
            "name" : "_rates",
            "type" : "tuple"
         }
      ],
      "name" : "setBaseSlashingRates",
      "outputs" : [],
      "stateMutability" : "nonpayable",
      "type" : "function"
   },
   {
      "inputs" : [
         {
            "internalType" : "address[]",
            "name" : "_newCommittee",
            "type" : "address[]"
         }
      ],
      "name" : "setCommittee",
      "outputs" : [],
      "stateMutability" : "nonpayable",
      "type" : "function"
   },
   {
      "inputs" : [
         {
            "internalType" : "uint256",
            "name" : "_delta",
            "type" : "uint256"
         }
      ],
      "name" : "setDelta",
      "outputs" : [],
      "stateMutability" : "nonpayable",
      "type" : "function"
   },
   {
      "inputs" : [
         {
            "components" : [
               {
                  "internalType" : "uint256",
                  "name" : "collusion",
                  "type" : "uint256"
               },
               {
                  "internalType" : "uint256",
                  "name" : "history",
                  "type" : "uint256"
               },
               {
                  "internalType" : "uint256",
                  "name" : "jail",
                  "type" : "uint256"
               }
            ],
            "internalType" : "struct IAccountability.Factors",
            "name" : "_factors",
            "type" : "tuple"
         }
      ],
      "name" : "setFactors",
      "outputs" : [],
      "stateMutability" : "nonpayable",
      "type" : "function"
   },
   {
      "inputs" : [
         {
            "internalType" : "uint256",
            "name" : "_window",
            "type" : "uint256"
         }
      ],
      "name" : "setInnocenceProofSubmissionWindow",
      "outputs" : [],
      "stateMutability" : "nonpayable",
      "type" : "function"
   },
   {
      "inputs" : [
         {
            "internalType" : "uint256",
            "name" : "_range",
            "type" : "uint256"
         }
      ],
      "name" : "setRange",
      "outputs" : [],
      "stateMutability" : "nonpayable",
      "type" : "function"
   }
]
`))
