diff --git a/contracts/bindings/AVSDirectory/binding.go b/contracts/bindings/AVSDirectory/binding.go index 7288f8c8e3..24eba09171 100644 --- a/contracts/bindings/AVSDirectory/binding.go +++ b/contracts/bindings/AVSDirectory/binding.go @@ -39,7 +39,7 @@ type ISignatureUtilsSignatureWithSaltAndExpiry struct { // ContractAVSDirectoryMetaData contains all meta data concerning the ContractAVSDirectory contract. var ContractAVSDirectoryMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_delegation\",\"type\":\"address\",\"internalType\":\"contractIDelegationManager\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"DOMAIN_TYPEHASH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"OPERATOR_AVS_REGISTRATION_TYPEHASH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"avsOperatorStatus\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"enumIAVSDirectory.OperatorAVSRegistrationStatus\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"calculateOperatorAVSRegistrationDigestHash\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"cancelSalt\",\"inputs\":[{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"delegation\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIDelegationManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"deregisterOperatorFromAVS\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"domainSeparator\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"initialOwner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_pauserRegistry\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"},{\"name\":\"initialPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"operatorSaltIsSpent\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"pauseAll\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pauserRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"registerOperatorToAVS\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSignature\",\"type\":\"tuple\",\"internalType\":\"structISignatureUtils.SignatureWithSaltAndExpiry\",\"components\":[{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setPauserRegistry\",\"inputs\":[{\"name\":\"newPauserRegistry\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"unpause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateAVSMetadataURI\",\"inputs\":[{\"name\":\"metadataURI\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"AVSMetadataURIUpdated\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"metadataURI\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorAVSRegistrationStatusUpdated\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"avs\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"status\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"enumIAVSDirectory.OperatorAVSRegistrationStatus\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"PauserRegistrySet\",\"inputs\":[{\"name\":\"pauserRegistry\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIPauserRegistry\"},{\"name\":\"newPauserRegistry\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIPauserRegistry\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false}]", - Bin: "0x60c06040523480156200001157600080fd5b5060405162001f7838038062001f78833981016040819052620000349162000118565b6001600160a01b0381166080526200004b62000056565b504660a0526200014a565b600054610100900460ff1615620000c35760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000116576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6000602082840312156200012b57600080fd5b81516001600160a01b03811681146200014357600080fd5b9392505050565b60805160a051611e01620001776000396000610ea801526000818161032401526109830152611e016000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063d79aceab1161007c578063d79aceab146102f8578063df5cf7231461031f578063ec76f44214610346578063f2fde38b14610359578063f698da251461036c578063fabc1cbc1461037457600080fd5b80638da5cb5b1461029b5780639926ee7d146102ac578063a1060c88146102bf578063a364f4da146102d2578063a98fb355146102e557600080fd5b806349075da31161010a57806349075da3146101fa578063595c6a67146102355780635ac86ab71461023d5780635c975abb14610260578063715018a614610268578063886f11951461027057600080fd5b806310d67a2f14610147578063136439dd1461015c5780631794bb3c1461016f57806320606b7014610182578063374823b5146101bc575b600080fd5b61015a6101553660046118ab565b610387565b005b61015a61016a3660046118cf565b610443565b61015a61017d3660046118e8565b610582565b6101a97f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b6101ea6101ca366004611929565b609960209081526000928352604080842090915290825290205460ff1681565b60405190151581526020016101b3565b610228610208366004611955565b609860209081526000928352604080842090915290825290205460ff1681565b6040516101b391906119a4565b61015a6106ac565b6101ea61024b3660046119cc565b606654600160ff9092169190911b9081161490565b6066546101a9565b61015a610773565b606554610283906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b6033546001600160a01b0316610283565b61015a6102ba366004611a5f565b610787565b6101a96102cd366004611b46565b610b1a565b61015a6102e03660046118ab565b610bd3565b61015a6102f3366004611b8c565b610d3c565b6101a97fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd81565b6102837f000000000000000000000000000000000000000000000000000000000000000081565b61015a6103543660046118cf565b610d83565b61015a6103673660046118ab565b610e2e565b6101a9610ea4565b61015a6103823660046118cf565b610ee2565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fe9190611bfe565b6001600160a01b0316336001600160a01b0316146104375760405162461bcd60e51b815260040161042e90611c1b565b60405180910390fd5b6104408161103e565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa15801561048b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104af9190611c65565b6104cb5760405162461bcd60e51b815260040161042e90611c87565b606654818116146105445760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600054610100900460ff16158080156105a25750600054600160ff909116105b806105bc5750303b1580156105bc575060005460ff166001145b61061f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161042e565b6000805460ff191660011790558015610642576000805461ff0019166101001790555b61064c8383611135565b61065461121f565b609755610660846112b6565b80156106a6576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107189190611c65565b6107345760405162461bcd60e51b815260040161042e90611c87565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61077b611308565b61078560006112b6565b565b606654600090600190811614156107dc5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b42826040015110156108445760405162461bcd60e51b815260206004820152603e6024820152600080516020611dac83398151915260448201527f56533a206f70657261746f72207369676e617475726520657870697265640000606482015260840161042e565b60013360009081526098602090815260408083206001600160a01b038816845290915290205460ff16600181111561087e5761087e61198e565b14156108e05760405162461bcd60e51b815260206004820152603f6024820152600080516020611dac83398151915260448201527f56533a206f70657261746f7220616c7265616479207265676973746572656400606482015260840161042e565b6001600160a01b038316600090815260996020908152604080832085830151845290915290205460ff16156109645760405162461bcd60e51b81526020600482015260366024820152600080516020611dac8339815191526044820152751594ce881cd85b1d08185b1c9958591e481cdc195b9d60521b606482015260840161042e565b6040516336b87bd760e11b81526001600160a01b0384811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636d70f7ae90602401602060405180830381865afa1580156109ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ee9190611c65565b610a645760405162461bcd60e51b815260206004820152604d6024820152600080516020611dac83398151915260448201527f56533a206f70657261746f72206e6f74207265676973746572656420746f204560648201526c1a59d95b93185e595c881e595d609a1b608482015260a40161042e565b6000610a7a843385602001518660400151610b1a565b9050610a8b84828560000151611362565b3360008181526098602090815260408083206001600160a01b0389168085529083528184208054600160ff199182168117909255609985528386208a860151875290945293829020805490931684179092555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610b0c91906119a4565b60405180910390a350505050565b604080517fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd6020808301919091526001600160a01b0387811683850152861660608301526080820185905260a08083018590528351808403909101815260c0909201909252805191012060009081610b90610ea4565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b60665460009060019081161415610c285760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b60013360009081526098602090815260408083206001600160a01b038716845290915290205460ff166001811115610c6257610c6261198e565b14610cd55760405162461bcd60e51b815260206004820152603f60248201527f4156534469726563746f72792e646572656769737465724f70657261746f724660448201527f726f6d4156533a206f70657261746f72206e6f74207265676973746572656400606482015260840161042e565b3360008181526098602090815260408083206001600160a01b0387168085529252808320805460ff191690555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610d3091906119a4565b60405180910390a35050565b336001600160a01b03167fa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c9437138383604051610d77929190611ccf565b60405180910390a25050565b33600090815260996020908152604080832084845290915290205460ff1615610e085760405162461bcd60e51b815260206004820152603160248201527f4156534469726563746f72792e63616e63656c53616c743a2063616e6e6f742060448201527018d85b98d95b081cdc195b9d081cd85b1d607a1b606482015260840161042e565b33600090815260996020908152604080832093835292905220805460ff19166001179055565b610e36611308565b6001600160a01b038116610e9b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161042e565b610440816112b6565b60007f0000000000000000000000000000000000000000000000000000000000000000461415610ed5575060975490565b610edd61121f565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f599190611bfe565b6001600160a01b0316336001600160a01b031614610f895760405162461bcd60e51b815260040161042e90611c1b565b6066541981196066541916146110075760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610577565b6001600160a01b0381166110cc5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161042e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6065546001600160a01b031615801561115657506001600160a01b03821615155b6111d85760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261121b8261103e565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6033546001600160a01b031633146107855760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161042e565b6001600160a01b0383163b1561148157604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906113a29086908690600401611cfe565b602060405180830381865afa1580156113bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e39190611d5b565b6001600160e01b0319161461147c5760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a40161042e565b505050565b826001600160a01b03166114958383611521565b6001600160a01b03161461147c5760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a40161042e565b60008060006115308585611545565b9150915061153d816115b5565b509392505050565b60008082516041141561157c5760208301516040840151606085015160001a61157087828585611770565b945094505050506115ae565b8251604014156115a6576020830151604084015161159b86838361185d565b9350935050506115ae565b506000905060025b9250929050565b60008160048111156115c9576115c961198e565b14156115d25750565b60018160048111156115e6576115e661198e565b14156116345760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161042e565b60028160048111156116485761164861198e565b14156116965760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161042e565b60038160048111156116aa576116aa61198e565b14156117035760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161042e565b60048160048111156117175761171761198e565b14156104405760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161042e565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156117a75750600090506003611854565b8460ff16601b141580156117bf57508460ff16601c14155b156117d05750600090506004611854565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611824573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661184d57600060019250925050611854565b9150600090505b94509492505050565b6000806001600160ff1b0383168161187a60ff86901c601b611d85565b905061188887828885611770565b935093505050935093915050565b6001600160a01b038116811461044057600080fd5b6000602082840312156118bd57600080fd5b81356118c881611896565b9392505050565b6000602082840312156118e157600080fd5b5035919050565b6000806000606084860312156118fd57600080fd5b833561190881611896565b9250602084013561191881611896565b929592945050506040919091013590565b6000806040838503121561193c57600080fd5b823561194781611896565b946020939093013593505050565b6000806040838503121561196857600080fd5b823561197381611896565b9150602083013561198381611896565b809150509250929050565b634e487b7160e01b600052602160045260246000fd5b60208101600283106119c657634e487b7160e01b600052602160045260246000fd5b91905290565b6000602082840312156119de57600080fd5b813560ff811681146118c857600080fd5b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715611a2857611a286119ef565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611a5757611a576119ef565b604052919050565b60008060408385031215611a7257600080fd5b8235611a7d81611896565b915060208381013567ffffffffffffffff80821115611a9b57600080fd5b9085019060608288031215611aaf57600080fd5b611ab7611a05565b823582811115611ac657600080fd5b8301601f81018913611ad757600080fd5b803583811115611ae957611ae96119ef565b611afb601f8201601f19168701611a2e565b93508084528986828401011115611b1157600080fd5b808683018786013760008682860101525050818152838301358482015260408301356040820152809450505050509250929050565b60008060008060808587031215611b5c57600080fd5b8435611b6781611896565b93506020850135611b7781611896565b93969395505050506040820135916060013590565b60008060208385031215611b9f57600080fd5b823567ffffffffffffffff80821115611bb757600080fd5b818501915085601f830112611bcb57600080fd5b813581811115611bda57600080fd5b866020828501011115611bec57600080fd5b60209290920196919550909350505050565b600060208284031215611c1057600080fd5b81516118c881611896565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611c7757600080fd5b815180151581146118c857600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b82815260006020604081840152835180604085015260005b81811015611d3257858101830151858201606001528201611d16565b81811115611d44576000606083870101525b50601f01601f191692909201606001949350505050565b600060208284031215611d6d57600080fd5b81516001600160e01b0319811681146118c857600080fd5b60008219821115611da657634e487b7160e01b600052601160045260246000fd5b50019056fe4156534469726563746f72792e72656769737465724f70657261746f72546f41a26469706673582212207a99d0a14fc101f44ba3cad26d7be9c139b394a4dc9309ff809984539275c2b064736f6c634300080c0033", + Bin: "0x60c06040523480156200001157600080fd5b5060405162001f7838038062001f78833981016040819052620000349162000118565b6001600160a01b0381166080526200004b62000056565b504660a0526200014a565b600054610100900460ff1615620000c35760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000116576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6000602082840312156200012b57600080fd5b81516001600160a01b03811681146200014357600080fd5b9392505050565b60805160a051611e01620001776000396000610ea801526000818161032401526109830152611e016000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063d79aceab1161007c578063d79aceab146102f8578063df5cf7231461031f578063ec76f44214610346578063f2fde38b14610359578063f698da251461036c578063fabc1cbc1461037457600080fd5b80638da5cb5b1461029b5780639926ee7d146102ac578063a1060c88146102bf578063a364f4da146102d2578063a98fb355146102e557600080fd5b806349075da31161010a57806349075da3146101fa578063595c6a67146102355780635ac86ab71461023d5780635c975abb14610260578063715018a614610268578063886f11951461027057600080fd5b806310d67a2f14610147578063136439dd1461015c5780631794bb3c1461016f57806320606b7014610182578063374823b5146101bc575b600080fd5b61015a6101553660046118ab565b610387565b005b61015a61016a3660046118cf565b610443565b61015a61017d3660046118e8565b610582565b6101a97f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b6101ea6101ca366004611929565b609960209081526000928352604080842090915290825290205460ff1681565b60405190151581526020016101b3565b610228610208366004611955565b609860209081526000928352604080842090915290825290205460ff1681565b6040516101b391906119a4565b61015a6106ac565b6101ea61024b3660046119cc565b606654600160ff9092169190911b9081161490565b6066546101a9565b61015a610773565b606554610283906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b6033546001600160a01b0316610283565b61015a6102ba366004611a5f565b610787565b6101a96102cd366004611b46565b610b1a565b61015a6102e03660046118ab565b610bd3565b61015a6102f3366004611b8c565b610d3c565b6101a97fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd81565b6102837f000000000000000000000000000000000000000000000000000000000000000081565b61015a6103543660046118cf565b610d83565b61015a6103673660046118ab565b610e2e565b6101a9610ea4565b61015a6103823660046118cf565b610ee2565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fe9190611bfe565b6001600160a01b0316336001600160a01b0316146104375760405162461bcd60e51b815260040161042e90611c1b565b60405180910390fd5b6104408161103e565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa15801561048b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104af9190611c65565b6104cb5760405162461bcd60e51b815260040161042e90611c87565b606654818116146105445760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600054610100900460ff16158080156105a25750600054600160ff909116105b806105bc5750303b1580156105bc575060005460ff166001145b61061f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161042e565b6000805460ff191660011790558015610642576000805461ff0019166101001790555b61064c8383611135565b61065461121f565b609755610660846112b6565b80156106a6576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107189190611c65565b6107345760405162461bcd60e51b815260040161042e90611c87565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61077b611308565b61078560006112b6565b565b606654600090600190811614156107dc5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b42826040015110156108445760405162461bcd60e51b815260206004820152603e6024820152600080516020611dac83398151915260448201527f56533a206f70657261746f72207369676e617475726520657870697265640000606482015260840161042e565b60013360009081526098602090815260408083206001600160a01b038816845290915290205460ff16600181111561087e5761087e61198e565b14156108e05760405162461bcd60e51b815260206004820152603f6024820152600080516020611dac83398151915260448201527f56533a206f70657261746f7220616c7265616479207265676973746572656400606482015260840161042e565b6001600160a01b038316600090815260996020908152604080832085830151845290915290205460ff16156109645760405162461bcd60e51b81526020600482015260366024820152600080516020611dac8339815191526044820152751594ce881cd85b1d08185b1c9958591e481cdc195b9d60521b606482015260840161042e565b6040516336b87bd760e11b81526001600160a01b0384811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636d70f7ae90602401602060405180830381865afa1580156109ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ee9190611c65565b610a645760405162461bcd60e51b815260206004820152604d6024820152600080516020611dac83398151915260448201527f56533a206f70657261746f72206e6f74207265676973746572656420746f204560648201526c1a59d95b93185e595c881e595d609a1b608482015260a40161042e565b6000610a7a843385602001518660400151610b1a565b9050610a8b84828560000151611362565b3360008181526098602090815260408083206001600160a01b0389168085529083528184208054600160ff199182168117909255609985528386208a860151875290945293829020805490931684179092555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610b0c91906119a4565b60405180910390a350505050565b604080517fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd6020808301919091526001600160a01b0387811683850152861660608301526080820185905260a08083018590528351808403909101815260c0909201909252805191012060009081610b90610ea4565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b60665460009060019081161415610c285760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b60013360009081526098602090815260408083206001600160a01b038716845290915290205460ff166001811115610c6257610c6261198e565b14610cd55760405162461bcd60e51b815260206004820152603f60248201527f4156534469726563746f72792e646572656769737465724f70657261746f724660448201527f726f6d4156533a206f70657261746f72206e6f74207265676973746572656400606482015260840161042e565b3360008181526098602090815260408083206001600160a01b0387168085529252808320805460ff191690555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610d3091906119a4565b60405180910390a35050565b336001600160a01b03167fa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c9437138383604051610d77929190611ccf565b60405180910390a25050565b33600090815260996020908152604080832084845290915290205460ff1615610e085760405162461bcd60e51b815260206004820152603160248201527f4156534469726563746f72792e63616e63656c53616c743a2063616e6e6f742060448201527018d85b98d95b081cdc195b9d081cd85b1d607a1b606482015260840161042e565b33600090815260996020908152604080832093835292905220805460ff19166001179055565b610e36611308565b6001600160a01b038116610e9b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161042e565b610440816112b6565b60007f0000000000000000000000000000000000000000000000000000000000000000461415610ed5575060975490565b610edd61121f565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f599190611bfe565b6001600160a01b0316336001600160a01b031614610f895760405162461bcd60e51b815260040161042e90611c1b565b6066541981196066541916146110075760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610577565b6001600160a01b0381166110cc5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161042e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6065546001600160a01b031615801561115657506001600160a01b03821615155b6111d85760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261121b8261103e565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6033546001600160a01b031633146107855760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161042e565b6001600160a01b0383163b1561148157604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906113a29086908690600401611cfe565b602060405180830381865afa1580156113bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e39190611d5b565b6001600160e01b0319161461147c5760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a40161042e565b505050565b826001600160a01b03166114958383611521565b6001600160a01b03161461147c5760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a40161042e565b60008060006115308585611545565b9150915061153d816115b5565b509392505050565b60008082516041141561157c5760208301516040840151606085015160001a61157087828585611770565b945094505050506115ae565b8251604014156115a6576020830151604084015161159b86838361185d565b9350935050506115ae565b506000905060025b9250929050565b60008160048111156115c9576115c961198e565b14156115d25750565b60018160048111156115e6576115e661198e565b14156116345760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161042e565b60028160048111156116485761164861198e565b14156116965760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161042e565b60038160048111156116aa576116aa61198e565b14156117035760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161042e565b60048160048111156117175761171761198e565b14156104405760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161042e565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156117a75750600090506003611854565b8460ff16601b141580156117bf57508460ff16601c14155b156117d05750600090506004611854565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611824573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661184d57600060019250925050611854565b9150600090505b94509492505050565b6000806001600160ff1b0383168161187a60ff86901c601b611d85565b905061188887828885611770565b935093505050935093915050565b6001600160a01b038116811461044057600080fd5b6000602082840312156118bd57600080fd5b81356118c881611896565b9392505050565b6000602082840312156118e157600080fd5b5035919050565b6000806000606084860312156118fd57600080fd5b833561190881611896565b9250602084013561191881611896565b929592945050506040919091013590565b6000806040838503121561193c57600080fd5b823561194781611896565b946020939093013593505050565b6000806040838503121561196857600080fd5b823561197381611896565b9150602083013561198381611896565b809150509250929050565b634e487b7160e01b600052602160045260246000fd5b60208101600283106119c657634e487b7160e01b600052602160045260246000fd5b91905290565b6000602082840312156119de57600080fd5b813560ff811681146118c857600080fd5b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715611a2857611a286119ef565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611a5757611a576119ef565b604052919050565b60008060408385031215611a7257600080fd5b8235611a7d81611896565b915060208381013567ffffffffffffffff80821115611a9b57600080fd5b9085019060608288031215611aaf57600080fd5b611ab7611a05565b823582811115611ac657600080fd5b8301601f81018913611ad757600080fd5b803583811115611ae957611ae96119ef565b611afb601f8201601f19168701611a2e565b93508084528986828401011115611b1157600080fd5b808683018786013760008682860101525050818152838301358482015260408301356040820152809450505050509250929050565b60008060008060808587031215611b5c57600080fd5b8435611b6781611896565b93506020850135611b7781611896565b93969395505050506040820135916060013590565b60008060208385031215611b9f57600080fd5b823567ffffffffffffffff80821115611bb757600080fd5b818501915085601f830112611bcb57600080fd5b813581811115611bda57600080fd5b866020828501011115611bec57600080fd5b60209290920196919550909350505050565b600060208284031215611c1057600080fd5b81516118c881611896565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611c7757600080fd5b815180151581146118c857600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b82815260006020604081840152835180604085015260005b81811015611d3257858101830151858201606001528201611d16565b81811115611d44576000606083870101525b50601f01601f191692909201606001949350505050565b600060208284031215611d6d57600080fd5b81516001600160e01b0319811681146118c857600080fd5b60008219821115611da657634e487b7160e01b600052601160045260246000fd5b50019056fe4156534469726563746f72792e72656769737465724f70657261746f72546f41a26469706673582212208d3c57e9775b61767c5e367f0f597992e454c648dc2823684da43c23d751574064736f6c634300080c0033", } // ContractAVSDirectoryABI is the input ABI used to generate the binding from. diff --git a/contracts/bindings/BLSApkRegistry/binding.go b/contracts/bindings/BLSApkRegistry/binding.go index 4f77fc699c..94a744ff1b 100644 --- a/contracts/bindings/BLSApkRegistry/binding.go +++ b/contracts/bindings/BLSApkRegistry/binding.go @@ -58,7 +58,7 @@ type IBLSApkRegistryPubkeyRegistrationParams struct { // ContractBLSApkRegistryMetaData contains all meta data concerning the ContractBLSApkRegistry contract. var ContractBLSApkRegistryMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_registryCoordinator\",\"type\":\"address\",\"internalType\":\"contractIRegistryCoordinator\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"apkHistory\",\"inputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"apkHash\",\"type\":\"bytes24\",\"internalType\":\"bytes24\"},{\"name\":\"updateBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"nextUpdateBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"currentApk\",\"inputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"deregisterOperator\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getApk\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getApkHashAtBlockNumberAndIndex\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"blockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"index\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes24\",\"internalType\":\"bytes24\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getApkHistoryLength\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getApkIndicesAtBlockNumber\",\"inputs\":[{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"blockNumber\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getApkUpdateAtIndex\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"index\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIBLSApkRegistry.ApkUpdate\",\"components\":[{\"name\":\"apkHash\",\"type\":\"bytes24\",\"internalType\":\"bytes24\"},{\"name\":\"updateBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"nextUpdateBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorFromPubkeyHash\",\"inputs\":[{\"name\":\"pubkeyHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorId\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getRegisteredPubkey\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initializeQuorum\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"operatorToPubkey\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"operatorToPubkeyHash\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pubkeyHashToOperator\",\"inputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"registerBLSPublicKey\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"params\",\"type\":\"tuple\",\"internalType\":\"structIBLSApkRegistry.PubkeyRegistrationParams\",\"components\":[{\"name\":\"pubkeyRegistrationSignature\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"pubkeyG1\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"pubkeyG2\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]}]},{\"name\":\"pubkeyRegistrationMessageHash\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"outputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"registerOperator\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"registryCoordinator\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"NewPubkeyRegistration\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"pubkeyG1\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"pubkeyG2\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorAddedToQuorums\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"operatorId\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorRemovedFromQuorums\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"operatorId\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false}]", - Bin: "0x60a06040523480156200001157600080fd5b506040516200210b3803806200210b833981016040819052620000349162000116565b6001600160a01b038116608052806200004c62000054565b505062000148565b600054610100900460ff1615620000c15760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000114576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6000602082840312156200012957600080fd5b81516001600160a01b03811681146200014157600080fd5b9392505050565b608051611f8b620001806000396000818161030f01528181610466015281816105bf015281816109c501526110310152611f8b6000f3fe608060405234801561001057600080fd5b50600436106101155760003560e01c80636d14a987116100a2578063bf79ce5811610071578063bf79ce58146103cc578063d5254a8c146103df578063de29fac0146103ff578063e8bb9ae61461041f578063f4e24fe51461044857600080fd5b80636d14a9871461030a5780637916cea6146103315780637ff81a8714610372578063a3db80e2146103a557600080fd5b80633fb27952116100e95780633fb27952146101df57806347b314e8146101f25780635f61a88414610233578063605747d51461028f57806368bccaac146102dd57600080fd5b8062a1f4cb1461011a57806313542a4e1461015b57806326d941f214610192578063377ed99d146101a7575b600080fd5b610141610128366004611904565b6003602052600090815260409020805460019091015482565b604080519283526020830191909152015b60405180910390f35b610184610169366004611904565b6001600160a01b031660009081526001602052604090205490565b604051908152602001610152565b6101a56101a0366004611937565b61045b565b005b6101ca6101b5366004611937565b60ff1660009081526004602052604090205490565b60405163ffffffff9091168152602001610152565b6101a56101ed3660046119c2565b6105b4565b61021b610200366004611a68565b6000908152600260205260409020546001600160a01b031690565b6040516001600160a01b039091168152602001610152565b610282610241366004611937565b60408051808201909152600080825260208201525060ff16600090815260056020908152604091829020825180840190935280548352600101549082015290565b6040516101529190611a81565b6102a261029d366004611a98565b610672565b60408051825167ffffffffffffffff1916815260208084015163ffffffff908116918301919091529282015190921690820152606001610152565b6102f06102eb366004611ac2565b610705565b60405167ffffffffffffffff199091168152602001610152565b61021b7f000000000000000000000000000000000000000000000000000000000000000081565b61034461033f366004611a98565b6108a0565b6040805167ffffffffffffffff19909416845263ffffffff9283166020850152911690820152606001610152565b610385610380366004611904565b6108eb565b604080518351815260209384015193810193909352820152606001610152565b6101416103b3366004611937565b6005602052600090815260409020805460019091015482565b6101846103da366004611b0a565b6109b8565b6103f26103ed366004611b67565b610e0c565b6040516101529190611bdf565b61018461040d366004611904565b60016020526000908152604090205481565b61021b61042d366004611a68565b6002602052600090815260409020546001600160a01b031681565b6101a56104563660046119c2565b611026565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104ac5760405162461bcd60e51b81526004016104a390611c29565b60405180910390fd5b60ff81166000908152600460205260409020541561052b5760405162461bcd60e51b815260206004820152603660248201527f424c5341706b52656769737472792e696e697469616c697a6551756f72756d3a6044820152752071756f72756d20616c72656164792065786973747360501b60648201526084016104a3565b60ff166000908152600460209081526040808320815160608101835284815263ffffffff4381168286019081528285018781528454600181018655948852959096209151919092018054955194518316600160e01b026001600160e01b0395909316600160c01b026001600160e01b03199096169190931c179390931791909116919091179055565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105fc5760405162461bcd60e51b81526004016104a390611c29565b6000610607836108eb565b50905061061482826110cf565b7f73a2b7fb844724b971802ae9b15db094d4b7192df9d7350e14eb466b9b22eb4e83610655856001600160a01b031660009081526001602052604090205490565b8460405161066593929190611c9d565b60405180910390a1505050565b604080516060810182526000808252602080830182905282840182905260ff8616825260049052919091208054839081106106af576106af611d09565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b8204811694830194909452600160e01b90049092169082015290505b92915050565b60ff8316600090815260046020526040812080548291908490811061072c5761072c611d09565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b82048116948301859052600160e01b9091048116928201929092529250851610156107f35760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a20696e64657820746f6f20726563656e74000060648201526084016104a3565b604081015163ffffffff1615806108195750806040015163ffffffff168463ffffffff16105b6108975760405162461bcd60e51b815260206004820152604360248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a206e6f74206c61746573742061706b2075706460648201526261746560e81b608482015260a4016104a3565b51949350505050565b600460205281600052604060002081815481106108bc57600080fd5b600091825260209091200154604081901b925063ffffffff600160c01b820481169250600160e01b9091041683565b60408051808201909152600080825260208201526001600160a01b0382166000818152600360209081526040808320815180830183528154815260019182015481850152948452909152812054909190806109ae5760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e676574526567697374657265645075626b60448201527f65793a206f70657261746f72206973206e6f742072656769737465726564000060648201526084016104a3565b9094909350915050565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610a025760405162461bcd60e51b81526004016104a390611c29565b6000610a30610a1936869003860160408701611d1f565b805160009081526020918201519091526040902090565b90507fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5811415610ab8576040805162461bcd60e51b8152602060048201526024810191909152600080516020611f3683398151915260448201527f4b65793a2063616e6e6f74207265676973746572207a65726f207075626b657960648201526084016104a3565b6001600160a01b03851660009081526001602052604090205415610b425760405162461bcd60e51b81526020600482015260476024820152600080516020611f3683398151915260448201527f4b65793a206f70657261746f7220616c72656164792072656769737465726564606482015266207075626b657960c81b608482015260a4016104a3565b6000818152600260205260409020546001600160a01b031615610bc65760405162461bcd60e51b81526020600482015260426024820152600080516020611f3683398151915260448201527f4b65793a207075626c6963206b657920616c7265616479207265676973746572606482015261195960f21b608482015260a4016104a3565b604080516000917f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000191610c1f918835916020808b0135928b01359160608c01359160808d019160c08e01918d35918e8201359101611d51565b6040516020818303038152906040528051906020012060001c610c429190611d9c565b9050610cdc610c7b610c6683610c60368a90038a0160408b01611d1f565b9061131a565b610c7536899003890189611d1f565b906113b1565b610c83611445565b610cc5610cb685610c60604080518082018252600080825260209182015281518083019092526001825260029082015290565b610c75368a90038a018a611d1f565b610cd7368a90038a0160808b01611e0e565b611505565b610d775760405162461bcd60e51b815260206004820152606c6024820152600080516020611f3683398151915260448201527f4b65793a2065697468657220746865204731207369676e61747572652069732060648201527f77726f6e672c206f7220473120616e642047322070726976617465206b65792060848201526b0c8de40dcdee840dac2e8c6d60a31b60a482015260c4016104a3565b6001600160a01b03861660008181526003602090815260408083208982018035825560608b013560019283015590835281842087905586845260029092529182902080546001600160a01b0319168417905590517fe3fb6613af2e8930cf85d47fcf6db10192224a64c6cbe8023e0eee1ba382804191610dfb9160808a0190611e6b565b60405180910390a250949350505050565b606060008367ffffffffffffffff811115610e2957610e29611952565b604051908082528060200260200182016040528015610e52578160200160208202803683370190505b50905060005b8481101561101d576000868683818110610e7457610e74611d09565b919091013560f81c6000818152600460205260409020549092509050801580610ed7575060ff821660009081526004602052604081208054909190610ebb57610ebb611d09565b600091825260209091200154600160c01b900463ffffffff1686105b15610f645760405162461bcd60e51b815260206004820152605160248201527f424c5341706b52656769737472792e67657441706b496e64696365734174426c60448201527f6f636b4e756d6265723a20626c6f636b4e756d626572206973206265666f7265606482015270207468652066697273742075706461746560781b608482015260a4016104a3565b805b80156110075760ff831660009081526004602052604090208790610f8b600184611eb5565b81548110610f9b57610f9b611d09565b600091825260209091200154600160c01b900463ffffffff1611610ff557610fc4600182611eb5565b858581518110610fd657610fd6611d09565b602002602001019063ffffffff16908163ffffffff1681525050611007565b80610fff81611ecc565b915050610f66565b505050808061101590611ee3565b915050610e58565b50949350505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461106e5760405162461bcd60e51b81526004016104a390611c29565b6000611079836108eb565b50905061108e8261108983611772565b6110cf565b7ff843ecd53a563675e62107be1494fdde4a3d49aeedaf8d88c616d85346e3500e83610655856001600160a01b031660009081526001602052604090205490565b604080518082019091526000808252602082015260005b835181101561131457600084828151811061110357611103611d09565b0160209081015160f81c60008181526004909252604090912054909150806111935760405162461bcd60e51b815260206004820152603d60248201527f424c5341706b52656769737472792e5f70726f6365737351756f72756d41706b60448201527f5570646174653a2071756f72756d20646f6573206e6f7420657869737400000060648201526084016104a3565b60ff821660009081526005602090815260409182902082518084019093528054835260010154908201526111c790866113b1565b60ff831660008181526005602090815260408083208551808255868401805160019384015590855251835281842094845260049092528220939750919290916112109085611eb5565b8154811061122057611220611d09565b600091825260209091200180549091504363ffffffff908116600160c01b9092041614156112615780546001600160c01b031916604083901c1781556112fd565b805463ffffffff438116600160e01b8181026001600160e01b0394851617855560ff88166000908152600460209081526040808320815160608101835267ffffffffffffffff198b16815280840196875280830185815282546001810184559286529390942093519301805495519251871690940291909516600160c01b026001600160e01b0319949094169190941c17919091179092161790555b50505050808061130c90611ee3565b9150506110e6565b50505050565b6040805180820190915260008082526020820152611336611831565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa90508080156113695761136b565bfe5b50806113a95760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b60448201526064016104a3565b505092915050565b60408051808201909152600080825260208201526113cd61184f565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa90508080156113695750806113a95760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b60448201526064016104a3565b61144d61186d565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b604080518082018252858152602080820185905282518084019093528583528201839052600091611534611892565b60005b60028110156116f957600061154d826006611efe565b905084826002811061156157611561611d09565b60200201515183611573836000611f1d565b600c811061158357611583611d09565b602002015284826002811061159a5761159a611d09565b602002015160200151838260016115b19190611f1d565b600c81106115c1576115c1611d09565b60200201528382600281106115d8576115d8611d09565b60200201515151836115eb836002611f1d565b600c81106115fb576115fb611d09565b602002015283826002811061161257611612611d09565b602002015151600160200201518361162b836003611f1d565b600c811061163b5761163b611d09565b602002015283826002811061165257611652611d09565b60200201516020015160006002811061166d5761166d611d09565b60200201518361167e836004611f1d565b600c811061168e5761168e611d09565b60200201528382600281106116a5576116a5611d09565b6020020151602001516001600281106116c0576116c0611d09565b6020020151836116d1836005611f1d565b600c81106116e1576116e1611d09565b602002015250806116f181611ee3565b915050611537565b506117026118b1565b60006020826101808560086107d05a03fa90508080156113695750806117625760405162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b60448201526064016104a3565b5051151598975050505050505050565b6040805180820190915260008082526020820152815115801561179757506020820151155b156117b5575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516117fa9190611d9c565b611824907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47611eb5565b905292915050565b919050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b60405180604001604052806118806118cf565b815260200161188d6118cf565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b80356001600160a01b038116811461182c57600080fd5b60006020828403121561191657600080fd5b61191f826118ed565b9392505050565b803560ff8116811461182c57600080fd5b60006020828403121561194957600080fd5b61191f82611926565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171561198b5761198b611952565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156119ba576119ba611952565b604052919050565b600080604083850312156119d557600080fd5b6119de836118ed565b915060208084013567ffffffffffffffff808211156119fc57600080fd5b818601915086601f830112611a1057600080fd5b813581811115611a2257611a22611952565b611a34601f8201601f19168501611991565b91508082528784828501011115611a4a57600080fd5b80848401858401376000848284010152508093505050509250929050565b600060208284031215611a7a57600080fd5b5035919050565b8151815260208083015190820152604081016106ff565b60008060408385031215611aab57600080fd5b611ab483611926565b946020939093013593505050565b600080600060608486031215611ad757600080fd5b611ae084611926565b9250602084013563ffffffff81168114611af957600080fd5b929592945050506040919091013590565b6000806000838503610160811215611b2157600080fd5b611b2a856118ed565b9350610100601f1982011215611b3f57600080fd5b602085019250604061011f1982011215611b5857600080fd5b50610120840190509250925092565b600080600060408486031215611b7c57600080fd5b833567ffffffffffffffff80821115611b9457600080fd5b818601915086601f830112611ba857600080fd5b813581811115611bb757600080fd5b876020828501011115611bc957600080fd5b6020928301989097509590910135949350505050565b6020808252825182820181905260009190848201906040850190845b81811015611c1d57835163ffffffff1683529284019291840191600101611bfb565b50909695505050505050565b6020808252604e908201527f424c5341706b52656769737472792e6f6e6c795265676973747279436f6f726460408201527f696e61746f723a2063616c6c6572206973206e6f74207468652072656769737460608201526d393c9031b7b7b93234b730ba37b960911b608082015260a00190565b60018060a01b038416815260006020848184015260606040840152835180606085015260005b81811015611cdf57858101830151858201608001528201611cc3565b81811115611cf1576000608083870101525b50601f01601f19169290920160800195945050505050565b634e487b7160e01b600052603260045260246000fd5b600060408284031215611d3157600080fd5b611d39611968565b82358152602083013560208201528091505092915050565b8881528760208201528660408201528560608201526040856080830137600060c082016000815260408682375050610100810192909252610120820152610140019695505050505050565b600082611db957634e487b7160e01b600052601260045260246000fd5b500690565b600082601f830112611dcf57600080fd5b611dd7611968565b806040840185811115611de957600080fd5b845b81811015611e03578035845260209384019301611deb565b509095945050505050565b600060808284031215611e2057600080fd5b6040516040810181811067ffffffffffffffff82111715611e4357611e43611952565b604052611e508484611dbe565b8152611e5f8460408501611dbe565b60208201529392505050565b823581526020808401359082015260c081016040838184013760808201600081526040808501823750600081529392505050565b634e487b7160e01b600052601160045260246000fd5b600082821015611ec757611ec7611e9f565b500390565b600081611edb57611edb611e9f565b506000190190565b6000600019821415611ef757611ef7611e9f565b5060010190565b6000816000190483118215151615611f1857611f18611e9f565b500290565b60008219821115611f3057611f30611e9f565b50019056fe424c5341706b52656769737472792e7265676973746572424c535075626c6963a264697066735822122077cfeb1524eb9d79202bd4416b0bf1b19f9c9e225369cfe27c6309f721a69bbe64736f6c634300080c0033", + Bin: "0x60a06040523480156200001157600080fd5b506040516200210b3803806200210b833981016040819052620000349162000116565b6001600160a01b038116608052806200004c62000054565b505062000148565b600054610100900460ff1615620000c15760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000114576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6000602082840312156200012957600080fd5b81516001600160a01b03811681146200014157600080fd5b9392505050565b608051611f8b620001806000396000818161030f01528181610466015281816105bf015281816109c501526110310152611f8b6000f3fe608060405234801561001057600080fd5b50600436106101155760003560e01c80636d14a987116100a2578063bf79ce5811610071578063bf79ce58146103cc578063d5254a8c146103df578063de29fac0146103ff578063e8bb9ae61461041f578063f4e24fe51461044857600080fd5b80636d14a9871461030a5780637916cea6146103315780637ff81a8714610372578063a3db80e2146103a557600080fd5b80633fb27952116100e95780633fb27952146101df57806347b314e8146101f25780635f61a88414610233578063605747d51461028f57806368bccaac146102dd57600080fd5b8062a1f4cb1461011a57806313542a4e1461015b57806326d941f214610192578063377ed99d146101a7575b600080fd5b610141610128366004611904565b6003602052600090815260409020805460019091015482565b604080519283526020830191909152015b60405180910390f35b610184610169366004611904565b6001600160a01b031660009081526001602052604090205490565b604051908152602001610152565b6101a56101a0366004611937565b61045b565b005b6101ca6101b5366004611937565b60ff1660009081526004602052604090205490565b60405163ffffffff9091168152602001610152565b6101a56101ed3660046119c2565b6105b4565b61021b610200366004611a68565b6000908152600260205260409020546001600160a01b031690565b6040516001600160a01b039091168152602001610152565b610282610241366004611937565b60408051808201909152600080825260208201525060ff16600090815260056020908152604091829020825180840190935280548352600101549082015290565b6040516101529190611a81565b6102a261029d366004611a98565b610672565b60408051825167ffffffffffffffff1916815260208084015163ffffffff908116918301919091529282015190921690820152606001610152565b6102f06102eb366004611ac2565b610705565b60405167ffffffffffffffff199091168152602001610152565b61021b7f000000000000000000000000000000000000000000000000000000000000000081565b61034461033f366004611a98565b6108a0565b6040805167ffffffffffffffff19909416845263ffffffff9283166020850152911690820152606001610152565b610385610380366004611904565b6108eb565b604080518351815260209384015193810193909352820152606001610152565b6101416103b3366004611937565b6005602052600090815260409020805460019091015482565b6101846103da366004611b0a565b6109b8565b6103f26103ed366004611b67565b610e0c565b6040516101529190611bdf565b61018461040d366004611904565b60016020526000908152604090205481565b61021b61042d366004611a68565b6002602052600090815260409020546001600160a01b031681565b6101a56104563660046119c2565b611026565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104ac5760405162461bcd60e51b81526004016104a390611c29565b60405180910390fd5b60ff81166000908152600460205260409020541561052b5760405162461bcd60e51b815260206004820152603660248201527f424c5341706b52656769737472792e696e697469616c697a6551756f72756d3a6044820152752071756f72756d20616c72656164792065786973747360501b60648201526084016104a3565b60ff166000908152600460209081526040808320815160608101835284815263ffffffff4381168286019081528285018781528454600181018655948852959096209151919092018054955194518316600160e01b026001600160e01b0395909316600160c01b026001600160e01b03199096169190931c179390931791909116919091179055565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105fc5760405162461bcd60e51b81526004016104a390611c29565b6000610607836108eb565b50905061061482826110cf565b7f73a2b7fb844724b971802ae9b15db094d4b7192df9d7350e14eb466b9b22eb4e83610655856001600160a01b031660009081526001602052604090205490565b8460405161066593929190611c9d565b60405180910390a1505050565b604080516060810182526000808252602080830182905282840182905260ff8616825260049052919091208054839081106106af576106af611d09565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b8204811694830194909452600160e01b90049092169082015290505b92915050565b60ff8316600090815260046020526040812080548291908490811061072c5761072c611d09565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b82048116948301859052600160e01b9091048116928201929092529250851610156107f35760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a20696e64657820746f6f20726563656e74000060648201526084016104a3565b604081015163ffffffff1615806108195750806040015163ffffffff168463ffffffff16105b6108975760405162461bcd60e51b815260206004820152604360248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a206e6f74206c61746573742061706b2075706460648201526261746560e81b608482015260a4016104a3565b51949350505050565b600460205281600052604060002081815481106108bc57600080fd5b600091825260209091200154604081901b925063ffffffff600160c01b820481169250600160e01b9091041683565b60408051808201909152600080825260208201526001600160a01b0382166000818152600360209081526040808320815180830183528154815260019182015481850152948452909152812054909190806109ae5760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e676574526567697374657265645075626b60448201527f65793a206f70657261746f72206973206e6f742072656769737465726564000060648201526084016104a3565b9094909350915050565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610a025760405162461bcd60e51b81526004016104a390611c29565b6000610a30610a1936869003860160408701611d1f565b805160009081526020918201519091526040902090565b90507fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5811415610ab8576040805162461bcd60e51b8152602060048201526024810191909152600080516020611f3683398151915260448201527f4b65793a2063616e6e6f74207265676973746572207a65726f207075626b657960648201526084016104a3565b6001600160a01b03851660009081526001602052604090205415610b425760405162461bcd60e51b81526020600482015260476024820152600080516020611f3683398151915260448201527f4b65793a206f70657261746f7220616c72656164792072656769737465726564606482015266207075626b657960c81b608482015260a4016104a3565b6000818152600260205260409020546001600160a01b031615610bc65760405162461bcd60e51b81526020600482015260426024820152600080516020611f3683398151915260448201527f4b65793a207075626c6963206b657920616c7265616479207265676973746572606482015261195960f21b608482015260a4016104a3565b604080516000917f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000191610c1f918835916020808b0135928b01359160608c01359160808d019160c08e01918d35918e8201359101611d51565b6040516020818303038152906040528051906020012060001c610c429190611d9c565b9050610cdc610c7b610c6683610c60368a90038a0160408b01611d1f565b9061131a565b610c7536899003890189611d1f565b906113b1565b610c83611445565b610cc5610cb685610c60604080518082018252600080825260209182015281518083019092526001825260029082015290565b610c75368a90038a018a611d1f565b610cd7368a90038a0160808b01611e0e565b611505565b610d775760405162461bcd60e51b815260206004820152606c6024820152600080516020611f3683398151915260448201527f4b65793a2065697468657220746865204731207369676e61747572652069732060648201527f77726f6e672c206f7220473120616e642047322070726976617465206b65792060848201526b0c8de40dcdee840dac2e8c6d60a31b60a482015260c4016104a3565b6001600160a01b03861660008181526003602090815260408083208982018035825560608b013560019283015590835281842087905586845260029092529182902080546001600160a01b0319168417905590517fe3fb6613af2e8930cf85d47fcf6db10192224a64c6cbe8023e0eee1ba382804191610dfb9160808a0190611e6b565b60405180910390a250949350505050565b606060008367ffffffffffffffff811115610e2957610e29611952565b604051908082528060200260200182016040528015610e52578160200160208202803683370190505b50905060005b8481101561101d576000868683818110610e7457610e74611d09565b919091013560f81c6000818152600460205260409020549092509050801580610ed7575060ff821660009081526004602052604081208054909190610ebb57610ebb611d09565b600091825260209091200154600160c01b900463ffffffff1686105b15610f645760405162461bcd60e51b815260206004820152605160248201527f424c5341706b52656769737472792e67657441706b496e64696365734174426c60448201527f6f636b4e756d6265723a20626c6f636b4e756d626572206973206265666f7265606482015270207468652066697273742075706461746560781b608482015260a4016104a3565b805b80156110075760ff831660009081526004602052604090208790610f8b600184611eb5565b81548110610f9b57610f9b611d09565b600091825260209091200154600160c01b900463ffffffff1611610ff557610fc4600182611eb5565b858581518110610fd657610fd6611d09565b602002602001019063ffffffff16908163ffffffff1681525050611007565b80610fff81611ecc565b915050610f66565b505050808061101590611ee3565b915050610e58565b50949350505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461106e5760405162461bcd60e51b81526004016104a390611c29565b6000611079836108eb565b50905061108e8261108983611772565b6110cf565b7ff843ecd53a563675e62107be1494fdde4a3d49aeedaf8d88c616d85346e3500e83610655856001600160a01b031660009081526001602052604090205490565b604080518082019091526000808252602082015260005b835181101561131457600084828151811061110357611103611d09565b0160209081015160f81c60008181526004909252604090912054909150806111935760405162461bcd60e51b815260206004820152603d60248201527f424c5341706b52656769737472792e5f70726f6365737351756f72756d41706b60448201527f5570646174653a2071756f72756d20646f6573206e6f7420657869737400000060648201526084016104a3565b60ff821660009081526005602090815260409182902082518084019093528054835260010154908201526111c790866113b1565b60ff831660008181526005602090815260408083208551808255868401805160019384015590855251835281842094845260049092528220939750919290916112109085611eb5565b8154811061122057611220611d09565b600091825260209091200180549091504363ffffffff908116600160c01b9092041614156112615780546001600160c01b031916604083901c1781556112fd565b805463ffffffff438116600160e01b8181026001600160e01b0394851617855560ff88166000908152600460209081526040808320815160608101835267ffffffffffffffff198b16815280840196875280830185815282546001810184559286529390942093519301805495519251871690940291909516600160c01b026001600160e01b0319949094169190941c17919091179092161790555b50505050808061130c90611ee3565b9150506110e6565b50505050565b6040805180820190915260008082526020820152611336611831565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa90508080156113695761136b565bfe5b50806113a95760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b60448201526064016104a3565b505092915050565b60408051808201909152600080825260208201526113cd61184f565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa90508080156113695750806113a95760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b60448201526064016104a3565b61144d61186d565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b604080518082018252858152602080820185905282518084019093528583528201839052600091611534611892565b60005b60028110156116f957600061154d826006611efe565b905084826002811061156157611561611d09565b60200201515183611573836000611f1d565b600c811061158357611583611d09565b602002015284826002811061159a5761159a611d09565b602002015160200151838260016115b19190611f1d565b600c81106115c1576115c1611d09565b60200201528382600281106115d8576115d8611d09565b60200201515151836115eb836002611f1d565b600c81106115fb576115fb611d09565b602002015283826002811061161257611612611d09565b602002015151600160200201518361162b836003611f1d565b600c811061163b5761163b611d09565b602002015283826002811061165257611652611d09565b60200201516020015160006002811061166d5761166d611d09565b60200201518361167e836004611f1d565b600c811061168e5761168e611d09565b60200201528382600281106116a5576116a5611d09565b6020020151602001516001600281106116c0576116c0611d09565b6020020151836116d1836005611f1d565b600c81106116e1576116e1611d09565b602002015250806116f181611ee3565b915050611537565b506117026118b1565b60006020826101808560086107d05a03fa90508080156113695750806117625760405162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b60448201526064016104a3565b5051151598975050505050505050565b6040805180820190915260008082526020820152815115801561179757506020820151155b156117b5575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516117fa9190611d9c565b611824907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47611eb5565b905292915050565b919050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b60405180604001604052806118806118cf565b815260200161188d6118cf565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b80356001600160a01b038116811461182c57600080fd5b60006020828403121561191657600080fd5b61191f826118ed565b9392505050565b803560ff8116811461182c57600080fd5b60006020828403121561194957600080fd5b61191f82611926565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171561198b5761198b611952565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156119ba576119ba611952565b604052919050565b600080604083850312156119d557600080fd5b6119de836118ed565b915060208084013567ffffffffffffffff808211156119fc57600080fd5b818601915086601f830112611a1057600080fd5b813581811115611a2257611a22611952565b611a34601f8201601f19168501611991565b91508082528784828501011115611a4a57600080fd5b80848401858401376000848284010152508093505050509250929050565b600060208284031215611a7a57600080fd5b5035919050565b8151815260208083015190820152604081016106ff565b60008060408385031215611aab57600080fd5b611ab483611926565b946020939093013593505050565b600080600060608486031215611ad757600080fd5b611ae084611926565b9250602084013563ffffffff81168114611af957600080fd5b929592945050506040919091013590565b6000806000838503610160811215611b2157600080fd5b611b2a856118ed565b9350610100601f1982011215611b3f57600080fd5b602085019250604061011f1982011215611b5857600080fd5b50610120840190509250925092565b600080600060408486031215611b7c57600080fd5b833567ffffffffffffffff80821115611b9457600080fd5b818601915086601f830112611ba857600080fd5b813581811115611bb757600080fd5b876020828501011115611bc957600080fd5b6020928301989097509590910135949350505050565b6020808252825182820181905260009190848201906040850190845b81811015611c1d57835163ffffffff1683529284019291840191600101611bfb565b50909695505050505050565b6020808252604e908201527f424c5341706b52656769737472792e6f6e6c795265676973747279436f6f726460408201527f696e61746f723a2063616c6c6572206973206e6f74207468652072656769737460608201526d393c9031b7b7b93234b730ba37b960911b608082015260a00190565b60018060a01b038416815260006020848184015260606040840152835180606085015260005b81811015611cdf57858101830151858201608001528201611cc3565b81811115611cf1576000608083870101525b50601f01601f19169290920160800195945050505050565b634e487b7160e01b600052603260045260246000fd5b600060408284031215611d3157600080fd5b611d39611968565b82358152602083013560208201528091505092915050565b8881528760208201528660408201528560608201526040856080830137600060c082016000815260408682375050610100810192909252610120820152610140019695505050505050565b600082611db957634e487b7160e01b600052601260045260246000fd5b500690565b600082601f830112611dcf57600080fd5b611dd7611968565b806040840185811115611de957600080fd5b845b81811015611e03578035845260209384019301611deb565b509095945050505050565b600060808284031215611e2057600080fd5b6040516040810181811067ffffffffffffffff82111715611e4357611e43611952565b604052611e508484611dbe565b8152611e5f8460408501611dbe565b60208201529392505050565b823581526020808401359082015260c081016040838184013760808201600081526040808501823750600081529392505050565b634e487b7160e01b600052601160045260246000fd5b600082821015611ec757611ec7611e9f565b500390565b600081611edb57611edb611e9f565b506000190190565b6000600019821415611ef757611ef7611e9f565b5060010190565b6000816000190483118215151615611f1857611f18611e9f565b500290565b60008219821115611f3057611f30611e9f565b50019056fe424c5341706b52656769737472792e7265676973746572424c535075626c6963a26469706673582212202ebd1746aa006f98d212f0f7da1f100602b5fb6e8a8f81ce23ada99607db4f5364736f6c634300080c0033", } // ContractBLSApkRegistryABI is the input ABI used to generate the binding from. diff --git a/contracts/bindings/DelegationManager/binding.go b/contracts/bindings/DelegationManager/binding.go index 0b5e0ecb84..d032238f96 100644 --- a/contracts/bindings/DelegationManager/binding.go +++ b/contracts/bindings/DelegationManager/binding.go @@ -79,7 +79,7 @@ type IStrategyManagerDeprecatedStructWithdrawerAndNonce struct { // ContractDelegationManagerMetaData contains all meta data concerning the ContractDelegationManager contract. var ContractDelegationManagerMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_strategyManager\",\"type\":\"address\",\"internalType\":\"contractIStrategyManager\"},{\"name\":\"_slasher\",\"type\":\"address\",\"internalType\":\"contractISlasher\"},{\"name\":\"_eigenPodManager\",\"type\":\"address\",\"internalType\":\"contractIEigenPodManager\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"DELEGATION_APPROVAL_TYPEHASH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"DOMAIN_TYPEHASH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"MAX_STAKER_OPT_OUT_WINDOW_BLOCKS\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"MAX_WITHDRAWAL_DELAY_BLOCKS\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"STAKER_DELEGATION_TYPEHASH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"beaconChainETHStrategy\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"calculateCurrentStakerDelegationDigestHash\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"calculateDelegationApprovalDigestHash\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_delegationApprover\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"approverSalt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"calculateStakerDelegationDigestHash\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_stakerNonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"calculateWithdrawalRoot\",\"inputs\":[{\"name\":\"withdrawal\",\"type\":\"tuple\",\"internalType\":\"structIDelegationManager.Withdrawal\",\"components\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegatedTo\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"shares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"completeQueuedWithdrawal\",\"inputs\":[{\"name\":\"withdrawal\",\"type\":\"tuple\",\"internalType\":\"structIDelegationManager.Withdrawal\",\"components\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegatedTo\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"shares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]},{\"name\":\"tokens\",\"type\":\"address[]\",\"internalType\":\"contractIERC20[]\"},{\"name\":\"middlewareTimesIndex\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"receiveAsTokens\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"completeQueuedWithdrawals\",\"inputs\":[{\"name\":\"withdrawals\",\"type\":\"tuple[]\",\"internalType\":\"structIDelegationManager.Withdrawal[]\",\"components\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegatedTo\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"shares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]},{\"name\":\"tokens\",\"type\":\"address[][]\",\"internalType\":\"contractIERC20[][]\"},{\"name\":\"middlewareTimesIndexes\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"receiveAsTokens\",\"type\":\"bool[]\",\"internalType\":\"bool[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"cumulativeWithdrawalsQueued\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"decreaseDelegatedShares\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"shares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"delegateTo\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"approverSignatureAndExpiry\",\"type\":\"tuple\",\"internalType\":\"structISignatureUtils.SignatureWithExpiry\",\"components\":[{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"approverSalt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"delegateToBySignature\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"stakerSignatureAndExpiry\",\"type\":\"tuple\",\"internalType\":\"structISignatureUtils.SignatureWithExpiry\",\"components\":[{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"approverSignatureAndExpiry\",\"type\":\"tuple\",\"internalType\":\"structISignatureUtils.SignatureWithExpiry\",\"components\":[{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"approverSalt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"delegatedTo\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"delegationApprover\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"delegationApproverSaltIsSpent\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"domainSeparator\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"earningsReceiver\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"eigenPodManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIEigenPodManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getDelegatableShares\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorShares\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getWithdrawalDelay\",\"inputs\":[{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"increaseDelegatedShares\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"shares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"initialOwner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_pauserRegistry\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"},{\"name\":\"initialPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_minWithdrawalDelayBlocks\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"_withdrawalDelayBlocks\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isDelegated\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isOperator\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"migrateQueuedWithdrawals\",\"inputs\":[{\"name\":\"withdrawalsToMigrate\",\"type\":\"tuple[]\",\"internalType\":\"structIStrategyManager.DeprecatedStruct_QueuedWithdrawal[]\",\"components\":[{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"shares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawerAndNonce\",\"type\":\"tuple\",\"internalType\":\"structIStrategyManager.DeprecatedStruct_WithdrawerAndNonce\",\"components\":[{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]},{\"name\":\"withdrawalStartBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"delegatedAddress\",\"type\":\"address\",\"internalType\":\"address\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"minWithdrawalDelayBlocks\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"modifyOperatorDetails\",\"inputs\":[{\"name\":\"newOperatorDetails\",\"type\":\"tuple\",\"internalType\":\"structIDelegationManager.OperatorDetails\",\"components\":[{\"name\":\"earningsReceiver\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegationApprover\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"stakerOptOutWindowBlocks\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"operatorDetails\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIDelegationManager.OperatorDetails\",\"components\":[{\"name\":\"earningsReceiver\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegationApprover\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"stakerOptOutWindowBlocks\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"operatorShares\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"pauseAll\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pauserRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pendingWithdrawals\",\"inputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"queueWithdrawals\",\"inputs\":[{\"name\":\"queuedWithdrawalParams\",\"type\":\"tuple[]\",\"internalType\":\"structIDelegationManager.QueuedWithdrawalParams[]\",\"components\":[{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"shares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"registerAsOperator\",\"inputs\":[{\"name\":\"registeringOperatorDetails\",\"type\":\"tuple\",\"internalType\":\"structIDelegationManager.OperatorDetails\",\"components\":[{\"name\":\"earningsReceiver\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegationApprover\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"stakerOptOutWindowBlocks\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"metadataURI\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setMinWithdrawalDelayBlocks\",\"inputs\":[{\"name\":\"newMinWithdrawalDelayBlocks\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setPauserRegistry\",\"inputs\":[{\"name\":\"newPauserRegistry\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setStrategyWithdrawalDelayBlocks\",\"inputs\":[{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"withdrawalDelayBlocks\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"slasher\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractISlasher\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"stakerNonce\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"stakerOptOutWindowBlocks\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"strategyManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStrategyManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"strategyWithdrawalDelayBlocks\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"undelegate\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"withdrawalRoots\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"unpause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateOperatorMetadataURI\",\"inputs\":[{\"name\":\"metadataURI\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"MinWithdrawalDelayBlocksSet\",\"inputs\":[{\"name\":\"previousValue\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"newValue\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorDetailsModified\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOperatorDetails\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structIDelegationManager.OperatorDetails\",\"components\":[{\"name\":\"earningsReceiver\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegationApprover\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"stakerOptOutWindowBlocks\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorMetadataURIUpdated\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"metadataURI\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorRegistered\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operatorDetails\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structIDelegationManager.OperatorDetails\",\"components\":[{\"name\":\"earningsReceiver\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegationApprover\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"stakerOptOutWindowBlocks\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSharesDecreased\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"staker\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"shares\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSharesIncreased\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"staker\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"shares\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"PauserRegistrySet\",\"inputs\":[{\"name\":\"pauserRegistry\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIPauserRegistry\"},{\"name\":\"newPauserRegistry\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIPauserRegistry\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StakerDelegated\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StakerForceUndelegated\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StakerUndelegated\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StrategyWithdrawalDelayBlocksSet\",\"inputs\":[{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"previousValue\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"newValue\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"WithdrawalCompleted\",\"inputs\":[{\"name\":\"withdrawalRoot\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"WithdrawalMigrated\",\"inputs\":[{\"name\":\"oldWithdrawalRoot\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"newWithdrawalRoot\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"WithdrawalQueued\",\"inputs\":[{\"name\":\"withdrawalRoot\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"withdrawal\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structIDelegationManager.Withdrawal\",\"components\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegatedTo\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"shares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}],\"anonymous\":false}]", - Bin: "0x6101006040523480156200001257600080fd5b506040516200618138038062006181833981016040819052620000359162000140565b6001600160a01b0380841660805280821660c052821660a0526200005862000065565b50504660e0525062000194565b600054610100900460ff1615620000d25760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000125576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200013d57600080fd5b50565b6000806000606084860312156200015657600080fd5b8351620001638162000127565b6020850151909350620001768162000127565b6040850151909250620001898162000127565b809150509250925092565b60805160a05160c05160e051615f516200023060003960006127790152600081816105e7015281816110ae0152818161142a01528181611e0d01528181612ad2015281816141390152614625015260006107d701526000818161052f0152818161107c015281816113f80152818161172001528181611ea101528181612b9f01528181612d220152818161425f01526146cb0152615f516000f3fe608060405234801561001057600080fd5b50600436106103785760003560e01c806360d7faed116101d3578063b7f06ebe11610104578063cf80873e116100a2578063f16172b01161007c578063f16172b01461097d578063f2fde38b14610990578063f698da25146109a3578063fabc1cbc146109ab57600080fd5b8063cf80873e14610936578063da8be86414610957578063eea9064b1461096a57600080fd5b8063c488375a116100de578063c488375a14610853578063c5e480db14610873578063c94b511114610919578063ca661c041461092c57600080fd5b8063b7f06ebe146107f9578063bb45fef21461081c578063c448feb81461084a57600080fd5b8063886f1195116101715780639104c3191161014b5780639104c3191461078457806399be81c81461079f578063a1788484146107b2578063b1344271146107d257600080fd5b8063886f1195146107405780638da5cb5b14610753578063900413471461076457600080fd5b80636d70f7ae116101ad5780636d70f7ae146106e7578063715018a6146106fa578063778e55f3146107025780637f5480711461072d57600080fd5b806360d7faed14610698578063635bbd10146106ab57806365da1264146106be57600080fd5b806329c77d4f116102ad5780634fc40b611161024b5780635ac86ab7116102255780635ac86ab71461062e5780635c975abb146106515780635cfe8d2c146106595780635f966f141461066c57600080fd5b80634fc40b6114610609578063595c6a6714610613578063597b36da1461061b57600080fd5b80633cdeb5e0116102875780633cdeb5e0146105695780633e28391d1461059857806343377382146105bb5780634665bcda146105e257600080fd5b806329c77d4f146104f7578063334043961461051757806339b70e381461052a57600080fd5b8063136439dd1161031a5780631bbce091116102f45780631bbce0911461049757806320606b70146104aa57806322bf40e4146104d157806328a573ae146104e457600080fd5b8063136439dd146104385780631522bf021461044b578063169283651461045e57600080fd5b80630dd8dd02116103565780630dd8dd02146103dd5780630f589e59146103fd57806310d67a2f14610412578063132d49671461042557600080fd5b80630449ca391461037d57806304a4f979146103a35780630b9f487a146103ca575b600080fd5b61039061038b366004614adb565b6109be565b6040519081526020015b60405180910390f35b6103907f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad81565b6103906103d8366004614b41565b610a43565b6103f06103eb366004614adb565b610b05565b60405161039a9190614b9c565b61041061040b366004614c39565b610e6e565b005b610410610420366004614c8c565b610fbe565b610410610433366004614cb0565b611071565b610410610446366004614cf1565b611128565b610410610459366004614d0a565b611267565b61039061046c366004614c8c565b6001600160a01b0316600090815260996020526040902060010154600160a01b900463ffffffff1690565b6103906104a5366004614cb0565b61127b565b6103907f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6104106104df366004614d75565b6112a9565b6104106104f2366004614cb0565b6113ed565b610390610505366004614c8c565b609b6020526000908152604090205481565b610410610525366004614e1c565b61149d565b6105517f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161039a565b610551610577366004614c8c565b6001600160a01b039081166000908152609960205260409020600101541690565b6105ab6105a6366004614c8c565b6115da565b604051901515815260200161039a565b6103907f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b81565b6105517f000000000000000000000000000000000000000000000000000000000000000081565b6103906213c68081565b6104106115fa565b61039061062936600461513b565b6116c1565b6105ab61063c366004615177565b606654600160ff9092169190911b9081161490565b606654610390565b6104106106673660046151ed565b6116f1565b61055161067a366004614c8c565b6001600160a01b039081166000908152609960205260409020541690565b6104106106a636600461534d565b61199c565b6104106106b9366004614cf1565b611a37565b6105516106cc366004614c8c565b609a602052600090815260409020546001600160a01b031681565b6105ab6106f5366004614c8c565b611a48565b610410611a68565b6103906107103660046153dc565b609860209081526000928352604080842090915290825290205481565b61041061073b3660046154bd565b611a7c565b606554610551906001600160a01b031681565b6033546001600160a01b0316610551565b61077761077236600461554d565b611b81565b60405161039a91906155d7565b61055173beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6104106107ad3660046155ea565b611c5b565b6103906107c0366004614c8c565b609f6020526000908152604090205481565b6105517f000000000000000000000000000000000000000000000000000000000000000081565b6105ab610807366004614cf1565b609e6020526000908152604090205460ff1681565b6105ab61082a36600461561f565b609c60209081526000928352604080842090915290825290205460ff1681565b610390609d5481565b610390610861366004614c8c565b60a16020526000908152604090205481565b6108e3610881366004614c8c565b6040805160608082018352600080835260208084018290529284018190526001600160a01b03948516815260998352839020835191820184528054851682526001015493841691810191909152600160a01b90920463ffffffff169082015290565b6040805182516001600160a01b039081168252602080850151909116908201529181015163ffffffff169082015260600161039a565b61039061092736600461564b565b611d2d565b61039062034bc081565b610949610944366004614c8c565b611de6565b60405161039a9291906156cc565b6103f0610965366004614c8c565b61219e565b6104106109783660046156f1565b612662565b61041061098b366004615749565b61266e565b61041061099e366004614c8c565b6126ff565b610390612775565b6104106109b9366004614cf1565b6127b3565b609d54600090815b83811015610a3b57600060a160008787858181106109e6576109e6615765565b90506020020160208101906109fb9190614c8c565b6001600160a01b03166001600160a01b0316815260200190815260200160002054905082811115610a2a578092505b50610a3481615791565b90506109c6565b509392505050565b604080517f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad6020808301919091526001600160a01b038681168385015288811660608401528716608083015260a0820185905260c08083018590528351808403909101815260e0909201909252805191012060009081610ac1612775565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f19018152919052805160209091012098975050505050505050565b60665460609060019060029081161415610b3a5760405162461bcd60e51b8152600401610b31906157ac565b60405180910390fd5b6000836001600160401b03811115610b5457610b54614ebe565b604051908082528060200260200182016040528015610b7d578160200160208202803683370190505b50336000908152609a60205260408120549192506001600160a01b03909116905b85811015610e6357868682818110610bb857610bb8615765565b9050602002810190610bca91906157e3565b610bd8906020810190615803565b9050878783818110610bec57610bec615765565b9050602002810190610bfe91906157e3565b610c089080615803565b905014610c7d5760405162461bcd60e51b815260206004820152603860248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a20696e707574206c656e677468206d69736d6174636800000000000000006064820152608401610b31565b33878783818110610c9057610c90615765565b9050602002810190610ca291906157e3565b610cb3906060810190604001614c8c565b6001600160a01b031614610d2f5760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a2077697468647261776572206d757374206265207374616b6572000000006064820152608401610b31565b610e343383898985818110610d4657610d46615765565b9050602002810190610d5891906157e3565b610d69906060810190604001614c8c565b8a8a86818110610d7b57610d7b615765565b9050602002810190610d8d91906157e3565b610d979080615803565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508e92508d9150889050818110610ddd57610ddd615765565b9050602002810190610def91906157e3565b610dfd906020810190615803565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061290f92505050565b838281518110610e4657610e46615765565b602090810291909101015280610e5b81615791565b915050610b9e565b509095945050505050565b336000908152609960205260409020546001600160a01b031615610f085760405162461bcd60e51b815260206004820152604560248201527f44656c65676174696f6e4d616e616765722e726567697374657241734f70657260448201527f61746f723a206f70657261746f722068617320616c72656164792072656769736064820152641d195c995960da1b608482015260a401610b31565b610f123384612ecf565b604080518082019091526060815260006020820152610f34338083600061316b565b336001600160a01b03167f8e8485583a2310d41f7c82b9427d0bd49bad74bb9cff9d3402a29d8f9b28a0e285604051610f6d919061584c565b60405180910390a2336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908484604051610fb092919061589e565b60405180910390a250505050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611011573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103591906158cd565b6001600160a01b0316336001600160a01b0316146110655760405162461bcd60e51b8152600401610b31906158ea565b61106e81613510565b50565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806110d05750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b6110ec5760405162461bcd60e51b8152600401610b3190615934565b6110f5836115da565b15611123576001600160a01b038084166000908152609a60205260409020541661112181858585613607565b505b505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015611170573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111949190615991565b6111b05760405162461bcd60e51b8152600401610b31906159ae565b606654818116146112295760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610b31565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b61126f613682565b611121848484846136dc565b6001600160a01b0383166000908152609b60205260408120546112a085828686611d2d565b95945050505050565b600054610100900460ff16158080156112c95750600054600160ff909116105b806112e35750303b1580156112e3575060005460ff166001145b6113465760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610b31565b6000805460ff191660011790558015611369576000805461ff0019166101001790555b6113738888613902565b61137b6139e8565b60975561138789613a7f565b61139086613ad1565b61139c858585856136dc565b80156113e2576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061144c5750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b6114685760405162461bcd60e51b8152600401610b3190615934565b611471836115da565b15611123576001600160a01b038084166000908152609a60205260409020541661112181858585613bcb565b606654600290600490811614156114c65760405162461bcd60e51b8152600401610b31906157ac565b600260c95414156115195760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610b31565b600260c95560005b888110156115c9576115b98a8a8381811061153e5761153e615765565b905060200281019061155091906159f6565b89898481811061156257611562615765565b90506020028101906115749190615803565b89898681811061158657611586615765565b9050602002013588888781811061159f5761159f615765565b90506020020160208101906115b49190615a0c565b613c46565b6115c281615791565b9050611521565b5050600160c9555050505050505050565b6001600160a01b039081166000908152609a602052604090205416151590565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015611642573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116669190615991565b6116825760405162461bcd60e51b8152600401610b31906159ae565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6000816040516020016116d49190615a9d565b604051602081830303815290604052805190602001209050919050565b60005b815181101561199857600082828151811061171157611711615765565b602002602001015190506000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663cd293f6f846040518263ffffffff1660e01b815260040161176a9190615ab0565b60408051808303816000875af1158015611788573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ac9190615b5c565b91509150811561198a576040808401516001600160a01b0381166000908152609f602052918220805491928291906117e383615791565b919050555060006040518060e00160405280846001600160a01b031681526020018760a001516001600160a01b031681526020018760600151600001516001600160a01b03168152602001838152602001876080015163ffffffff16815260200187600001518152602001876020015181525090506000611863826116c1565b6000818152609e602052604090205490915060ff16156118f95760405162461bcd60e51b815260206004820152604560248201527f44656c65676174696f6e4d616e616765722e6d6967726174655175657565645760448201527f69746864726177616c733a207769746864726177616c20616c72656164792065606482015264786973747360d81b608482015260a401610b31565b6000818152609e602052604090819020805460ff19166001179055517f9009ab153e8014fbfb02f2217f5cde7aa7f9ad734ae85ca3ee3f4ca2fdd499f9906119449083908590615b8a565b60405180910390a160408051868152602081018390527fdc00758b65eef71dc3780c04ebe36cab6bdb266c3a698187e29e0f0dca012630910160405180910390a1505050505b8360010193505050506116f4565b5050565b606654600290600490811614156119c55760405162461bcd60e51b8152600401610b31906157ac565b600260c9541415611a185760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610b31565b600260c955611a2a8686868686613c46565b5050600160c95550505050565b611a3f613682565b61106e81613ad1565b6001600160a01b0390811660009081526099602052604090205416151590565b611a70613682565b611a7a6000613a7f565b565b4283602001511015611b005760405162461bcd60e51b815260206004820152604160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b6572207369676e6174757265206578706972656064820152601960fa1b608482015260a401610b31565b6000609b6000876001600160a01b03166001600160a01b031681526020019081526020016000205490506000611b3c8783888860200151611d2d565b6001600160a01b0388166000908152609b602052604090206001840190558551909150611b6c9088908390614430565b611b788787868661316b565b50505050505050565b6060600082516001600160401b03811115611b9e57611b9e614ebe565b604051908082528060200260200182016040528015611bc7578160200160208202803683370190505b50905060005b8351811015610a3b576001600160a01b03851660009081526098602052604081208551909190869084908110611c0557611c05615765565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054828281518110611c4057611c40615765565b6020908102919091010152611c5481615791565b9050611bcd565b611c6433611a48565b611ce65760405162461bcd60e51b815260206004820152604760248201527f44656c65676174696f6e4d616e616765722e7570646174654f70657261746f7260448201527f4d657461646174615552493a2063616c6c6572206d75737420626520616e206f6064820152663832b930ba37b960c91b608482015260a401610b31565b336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908383604051611d2192919061589e565b60405180910390a25050565b604080517f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b6020808301919091526001600160a01b0387811683850152851660608301526080820186905260a08083018590528351808403909101815260c0909201909252805191012060009081611da3612775565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b6040516360f4062b60e01b81526001600160a01b03828116600483015260609182916000917f0000000000000000000000000000000000000000000000000000000000000000909116906360f4062b90602401602060405180830381865afa158015611e56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e7a9190615ba3565b6040516394f649dd60e01b81526001600160a01b03868116600483015291925060009182917f0000000000000000000000000000000000000000000000000000000000000000909116906394f649dd90602401600060405180830381865afa158015611eea573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611f129190810190615c17565b9150915060008313611f2957909590945092505050565b606080835160001415611fe3576040805160018082528183019092529060208083019080368337505060408051600180825281830190925292945090506020808301908036833701905050905073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac082600081518110611f9e57611f9e615765565b60200260200101906001600160a01b031690816001600160a01b0316815250508481600081518110611fd257611fd2615765565b602002602001018181525050612191565b8351611ff0906001615cd1565b6001600160401b0381111561200757612007614ebe565b604051908082528060200260200182016040528015612030578160200160208202803683370190505b50915081516001600160401b0381111561204c5761204c614ebe565b604051908082528060200260200182016040528015612075578160200160208202803683370190505b50905060005b845181101561210f5784818151811061209657612096615765565b60200260200101518382815181106120b0576120b0615765565b60200260200101906001600160a01b031690816001600160a01b0316815250508381815181106120e2576120e2615765565b60200260200101518282815181106120fc576120fc615765565b602090810291909101015260010161207b565b5073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac082600184516121349190615ce9565b8151811061214457612144615765565b60200260200101906001600160a01b031690816001600160a01b0316815250508481600184516121749190615ce9565b8151811061218457612184615765565b6020026020010181815250505b9097909650945050505050565b606654606090600190600290811614156121ca5760405162461bcd60e51b8152600401610b31906157ac565b6121d3836115da565b6122535760405162461bcd60e51b8152602060048201526044602482018190527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a207374908201527f616b6572206d7573742062652064656c65676174656420746f20756e64656c656064820152636761746560e01b608482015260a401610b31565b61225c83611a48565b156122cf5760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a206f7060448201527f657261746f72732063616e6e6f7420626520756e64656c6567617465640000006064820152608401610b31565b6001600160a01b03831661234b5760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6e6e6f7420756e64656c6567617465207a65726f2061646472657373000000006064820152608401610b31565b6001600160a01b038084166000818152609a60205260409020549091169033148061237e5750336001600160a01b038216145b806123a557506001600160a01b038181166000908152609960205260409020600101541633145b6124175760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6c6c65722063616e6e6f7420756e64656c6567617465207374616b65720000006064820152608401610b31565b60008061242386611de6565b9092509050336001600160a01b0387161461247957826001600160a01b0316866001600160a01b03167ff0eddf07e6ea14f388b47e1e94a0f464ecbd9eed4171130e0fc0e99fb4030a8a60405160405180910390a35b826001600160a01b0316866001600160a01b03167ffee30966a256b71e14bc0ebfc94315e28ef4a97a7131a9e2b7a310a73af4467660405160405180910390a36001600160a01b0386166000908152609a6020526040902080546001600160a01b031916905581516124fb576040805160008152602081019091529450612659565b81516001600160401b0381111561251457612514614ebe565b60405190808252806020026020018201604052801561253d578160200160208202803683370190505b50945060005b8251811015612657576040805160018082528183019092526000916020808301908036833750506040805160018082528183019092529293506000929150602080830190803683370190505090508483815181106125a3576125a3615765565b6020026020010151826000815181106125be576125be615765565b60200260200101906001600160a01b031690816001600160a01b0316815250508383815181106125f0576125f0615765565b60200260200101518160008151811061260b5761260b615765565b60200260200101818152505061262489878b858561290f565b88848151811061263657612636615765565b6020026020010181815250505050808061264f90615791565b915050612543565b505b50505050919050565b6111233384848461316b565b61267733611a48565b6126f55760405162461bcd60e51b815260206004820152604360248201527f44656c65676174696f6e4d616e616765722e6d6f646966794f70657261746f7260448201527f44657461696c733a2063616c6c6572206d75737420626520616e206f706572616064820152623a37b960e91b608482015260a401610b31565b61106e3382612ecf565b612707613682565b6001600160a01b03811661276c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b31565b61106e81613a7f565b60007f00000000000000000000000000000000000000000000000000000000000000004614156127a6575060975490565b6127ae6139e8565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612806573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061282a91906158cd565b6001600160a01b0316336001600160a01b03161461285a5760405162461bcd60e51b8152600401610b31906158ea565b6066541981196066541916146128d85760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610b31565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161125c565b60006001600160a01b0386166129a65760405162461bcd60e51b815260206004820152605060248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374616b65722063616e6e6f7460648201526f206265207a65726f206164647265737360801b608482015260a401610b31565b8251612a305760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374726174656769657320636160648201526c6e6e6f7420626520656d70747960981b608482015260a401610b31565b60005b8351811015612ddd576001600160a01b03861615612a8957612a898688868481518110612a6257612a62615765565b6020026020010151868581518110612a7c57612a7c615765565b6020026020010151613607565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06001600160a01b0316848281518110612ab957612ab9615765565b60200260200101516001600160a01b03161415612b82577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663beffbb8988858481518110612b1257612b12615765565b60200260200101516040518363ffffffff1660e01b8152600401612b4b9291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b158015612b6557600080fd5b505af1158015612b79573d6000803e3d6000fd5b50505050612dd5565b846001600160a01b0316876001600160a01b03161480612c5457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639b4da03d858381518110612bde57612bde615765565b60200260200101516040518263ffffffff1660e01b8152600401612c1191906001600160a01b0391909116815260200190565b602060405180830381865afa158015612c2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c529190615991565b155b612d205760405162461bcd60e51b8152602060048201526084602482018190527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448301527f6e6451756575655769746864726177616c3a2077697468647261776572206d7560648301527f73742062652073616d652061646472657373206173207374616b657220696620908201527f746869726450617274795472616e7366657273466f7262696464656e2061726560a482015263081cd95d60e21b60c482015260e401610b31565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638c80d4e588868481518110612d6257612d62615765565b6020026020010151868581518110612d7c57612d7c615765565b60200260200101516040518463ffffffff1660e01b8152600401612da293929190615d00565b600060405180830381600087803b158015612dbc57600080fd5b505af1158015612dd0573d6000803e3d6000fd5b505050505b600101612a33565b506001600160a01b0386166000908152609f60205260408120805491829190612e0583615791565b919050555060006040518060e00160405280896001600160a01b03168152602001886001600160a01b03168152602001876001600160a01b031681526020018381526020014363ffffffff1681526020018681526020018581525090506000612e6d826116c1565b6000818152609e602052604090819020805460ff19166001179055519091507f9009ab153e8014fbfb02f2217f5cde7aa7f9ad734ae85ca3ee3f4ca2fdd499f990612ebb9083908590615b8a565b60405180910390a198975050505050505050565b6000612ede6020830183614c8c565b6001600160a01b03161415612f785760405162461bcd60e51b815260206004820152605460248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a2063616e6e6f742073657420606561726e696e677352656365696064820152737665726020746f207a65726f206164647265737360601b608482015260a401610b31565b6213c680612f8c6060830160408401615d24565b63ffffffff1611156130415760405162461bcd60e51b815260206004820152606c60248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527f63616e6e6f74206265203e204d41585f5354414b45525f4f50545f4f55545f5760848201526b494e444f575f424c4f434b5360a01b60a482015260c401610b31565b6001600160a01b0382166000908152609960205260409081902060010154600160a01b900463ffffffff169061307d9060608401908401615d24565b63ffffffff1610156131135760405162461bcd60e51b815260206004820152605360248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527218d85b9b9bdd08189948191958dc99585cd959606a1b608482015260a401610b31565b6001600160a01b038216600090815260996020526040902081906131378282615d61565b505060405133907ffebe5cd24b2cbc7b065b9d0fdeb904461e4afcff57dd57acda1e7832031ba7ac90611d2190849061584c565b606654600090600190811614156131945760405162461bcd60e51b8152600401610b31906157ac565b61319d856115da565b1561321a5760405162461bcd60e51b815260206004820152604160248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2073746160448201527f6b657220697320616c7265616479206163746976656c792064656c65676174656064820152601960fa1b608482015260a401610b31565b61322384611a48565b6132a35760405162461bcd60e51b815260206004820152604560248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a206f706560448201527f7261746f72206973206e6f74207265676973746572656420696e20456967656e6064820152642630bcb2b960d91b608482015260a401610b31565b6001600160a01b038085166000908152609960205260409020600101541680158015906132d95750336001600160a01b03821614155b80156132ee5750336001600160a01b03861614155b1561345b57428460200151101561336d5760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f766572207369676e617475726520657870697265640000000000000000006064820152608401610b31565b6001600160a01b0381166000908152609c6020908152604080832086845290915290205460ff16156134075760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f76657253616c7420616c7265616479207370656e740000000000000000006064820152608401610b31565b6001600160a01b0381166000908152609c6020908152604080832086845282528220805460ff19166001179055850151613448908890889085908890610a43565b905061345982828760000151614430565b505b6001600160a01b038681166000818152609a602052604080822080546001600160a01b031916948a169485179055517fc3ee9f2e5fda98e8066a1f745b2df9285f416fe98cf2559cd21484b3d87433049190a36000806134ba88611de6565b9150915060005b82518110156113e257613508888a8584815181106134e1576134e1615765565b60200260200101518585815181106134fb576134fb615765565b6020026020010151613bcb565b6001016134c1565b6001600160a01b03811661359e5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610b31565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0380851660009081526098602090815260408083209386168352929052908120805483929061363e908490615ce9565b92505081905550836001600160a01b03167f6909600037b75d7b4733aedd815442b5ec018a827751c832aaff64eba5d6d2dd848484604051610fb093929190615d00565b6033546001600160a01b03163314611a7a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b31565b8281146137645760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a20696e707574206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a401610b31565b8260005b818110156138fa57600086868381811061378457613784615765565b90506020020160208101906137999190614c8c565b6001600160a01b038116600090815260a160205260408120549192508686858181106137c7576137c7615765565b90506020020135905062034bc081111561388b5760405162461bcd60e51b815260206004820152607360248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a205f7769746864726177616c60648201527f44656c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544860848201527244524157414c5f44454c41595f424c4f434b5360681b60a482015260c401610b31565b6001600160a01b038316600081815260a160209081526040918290208490558151928352820184905281018290527f0e7efa738e8b0ce6376a0c1af471655540d2e9a81647d7b09ed823018426576d9060600160405180910390a1505050806138f390615791565b9050613768565b505050505050565b6065546001600160a01b031615801561392357506001600160a01b03821615155b6139a55760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610b31565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261199882613510565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b62034bc0811115613b8a5760405162461bcd60e51b815260206004820152607160248201527f44656c65676174696f6e4d616e616765722e5f7365744d696e5769746864726160448201527f77616c44656c6179426c6f636b733a205f6d696e5769746864726177616c446560648201527f6c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544844526084820152704157414c5f44454c41595f424c4f434b5360781b60a482015260c401610b31565b609d5460408051918252602082018390527fafa003cd76f87ff9d62b35beea889920f33c0c42b8d45b74954d61d50f4b6b69910160405180910390a1609d55565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613c02908490615cd1565b92505081905550836001600160a01b03167f1ec042c965e2edd7107b51188ee0f383e22e76179041ab3a9d18ff151405166c848484604051610fb093929190615d00565b6000613c5461062987615dc4565b6000818152609e602052604090205490915060ff16613cd55760405162461bcd60e51b81526020600482015260436024820152600080516020615efc83398151915260448201527f645769746864726177616c3a20616374696f6e206973206e6f7420696e20717560648201526265756560e81b608482015260a401610b31565b609d544390613cea60a0890160808a01615d24565b63ffffffff16613cfa9190615cd1565b1115613d825760405162461bcd60e51b815260206004820152605f6024820152600080516020615efc83398151915260448201527f645769746864726177616c3a206d696e5769746864726177616c44656c61794260648201527f6c6f636b7320706572696f6420686173206e6f74207965742070617373656400608482015260a401610b31565b613d926060870160408801614c8c565b6001600160a01b0316336001600160a01b031614613e1f5760405162461bcd60e51b81526020600482015260506024820152600080516020615efc83398151915260448201527f645769746864726177616c3a206f6e6c7920776974686472617765722063616e60648201526f1031b7b6b83632ba329030b1ba34b7b760811b608482015260a401610b31565b8115613ea157613e3260a0870187615803565b85149050613ea15760405162461bcd60e51b81526020600482015260426024820152600080516020615efc83398151915260448201527f645769746864726177616c3a20696e707574206c656e677468206d69736d61746064820152610c6d60f31b608482015260a401610b31565b6000818152609e60205260409020805460ff1916905581156140065760005b613ecd60a0880188615803565b9050811015614000574360a16000613ee860a08b018b615803565b85818110613ef857613ef8615765565b9050602002016020810190613f0d9190614c8c565b6001600160a01b03168152602081019190915260400160002054613f3760a08a0160808b01615d24565b63ffffffff16613f479190615cd1565b1115613f655760405162461bcd60e51b8152600401610b3190615dd6565b613ff8613f756020890189614c8c565b33613f8360a08b018b615803565b85818110613f9357613f93615765565b9050602002016020810190613fa89190614c8c565b613fb560c08c018c615803565b86818110613fc557613fc5615765565b905060200201358a8a87818110613fde57613fde615765565b9050602002016020810190613ff39190614c8c565b6145ea565b600101613ec0565b506143f5565b336000908152609a60205260408120546001600160a01b0316905b61402e60a0890189615803565b90508110156143f2574360a1600061404960a08c018c615803565b8581811061405957614059615765565b905060200201602081019061406e9190614c8c565b6001600160a01b0316815260208101919091526040016000205461409860a08b0160808c01615d24565b63ffffffff166140a89190615cd1565b11156140c65760405162461bcd60e51b8152600401610b3190615dd6565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06140e860a08a018a615803565b838181106140f8576140f8615765565b905060200201602081019061410d9190614c8c565b6001600160a01b0316141561425d57600061412b60208a018a614c8c565b905060006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016630e81073c8361416c60c08e018e615803565b8781811061417c5761417c615765565b6040516001600160e01b031960e087901b1681526001600160a01b03909416600485015260200291909101356024830152506044016020604051808303816000875af11580156141d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141f49190615ba3565b6001600160a01b038084166000908152609a602052604090205491925016801561425557614255818461422a60a08f018f615803565b8881811061423a5761423a615765565b905060200201602081019061424f9190614c8c565b85613bcb565b5050506143ea565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c4623ea13389898581811061429f5761429f615765565b90506020020160208101906142b49190614c8c565b6142c160a08d018d615803565b868181106142d1576142d1615765565b90506020020160208101906142e69190614c8c565b6142f360c08e018e615803565b8781811061430357614303615765565b60405160e088901b6001600160e01b03191681526001600160a01b03968716600482015294861660248601529290941660448401526020909102013560648201526084019050600060405180830381600087803b15801561436357600080fd5b505af1158015614377573d6000803e3d6000fd5b505050506001600160a01b038216156143ea576143ea823361439c60a08c018c615803565b858181106143ac576143ac615765565b90506020020160208101906143c19190614c8c565b6143ce60c08d018d615803565b868181106143de576143de615765565b90506020020135613bcb565b600101614021565b50505b6040518181527fc97098c2f658800b4df29001527f7324bcdffcf6e8751a699ab920a1eced5b1d9060200160405180910390a1505050505050565b6001600160a01b0383163b1561454a57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906144709086908690600401615e5e565b602060405180830381865afa15801561448d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144b19190615ebb565b6001600160e01b031916146111235760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610b31565b826001600160a01b031661455e838361472a565b6001600160a01b0316146111235760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610b31565b6001600160a01b03831673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac014156146955760405162387b1360e81b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063387b13009061465e90889088908790600401615d00565b600060405180830381600087803b15801561467857600080fd5b505af115801561468c573d6000803e3d6000fd5b50505050614723565b60405163c608c7f360e01b81526001600160a01b03858116600483015284811660248301526044820184905282811660648301527f0000000000000000000000000000000000000000000000000000000000000000169063c608c7f390608401600060405180830381600087803b15801561470f57600080fd5b505af11580156113e2573d6000803e3d6000fd5b5050505050565b60008060006147398585614746565b91509150610a3b816147b6565b60008082516041141561477d5760208301516040840151606085015160001a61477187828585614971565b945094505050506147af565b8251604014156147a7576020830151604084015161479c868383614a5e565b9350935050506147af565b506000905060025b9250929050565b60008160048111156147ca576147ca615ee5565b14156147d35750565b60018160048111156147e7576147e7615ee5565b14156148355760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610b31565b600281600481111561484957614849615ee5565b14156148975760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610b31565b60038160048111156148ab576148ab615ee5565b14156149045760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610b31565b600481600481111561491857614918615ee5565b141561106e5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610b31565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156149a85750600090506003614a55565b8460ff16601b141580156149c057508460ff16601c14155b156149d15750600090506004614a55565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614a25573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116614a4e57600060019250925050614a55565b9150600090505b94509492505050565b6000806001600160ff1b03831681614a7b60ff86901c601b615cd1565b9050614a8987828885614971565b935093505050935093915050565b60008083601f840112614aa957600080fd5b5081356001600160401b03811115614ac057600080fd5b6020830191508360208260051b85010111156147af57600080fd5b60008060208385031215614aee57600080fd5b82356001600160401b03811115614b0457600080fd5b614b1085828601614a97565b90969095509350505050565b6001600160a01b038116811461106e57600080fd5b8035614b3c81614b1c565b919050565b600080600080600060a08688031215614b5957600080fd5b8535614b6481614b1c565b94506020860135614b7481614b1c565b93506040860135614b8481614b1c565b94979396509394606081013594506080013592915050565b6020808252825182820181905260009190848201906040850190845b81811015614bd457835183529284019291840191600101614bb8565b50909695505050505050565b600060608284031215614bf257600080fd5b50919050565b60008083601f840112614c0a57600080fd5b5081356001600160401b03811115614c2157600080fd5b6020830191508360208285010111156147af57600080fd5b600080600060808486031215614c4e57600080fd5b614c588585614be0565b925060608401356001600160401b03811115614c7357600080fd5b614c7f86828701614bf8565b9497909650939450505050565b600060208284031215614c9e57600080fd5b8135614ca981614b1c565b9392505050565b600080600060608486031215614cc557600080fd5b8335614cd081614b1c565b92506020840135614ce081614b1c565b929592945050506040919091013590565b600060208284031215614d0357600080fd5b5035919050565b60008060008060408587031215614d2057600080fd5b84356001600160401b0380821115614d3757600080fd5b614d4388838901614a97565b90965094506020870135915080821115614d5c57600080fd5b50614d6987828801614a97565b95989497509550505050565b60008060008060008060008060c0898b031215614d9157600080fd5b8835614d9c81614b1c565b97506020890135614dac81614b1c565b9650604089013595506060890135945060808901356001600160401b0380821115614dd657600080fd5b614de28c838d01614a97565b909650945060a08b0135915080821115614dfb57600080fd5b50614e088b828c01614a97565b999c989b5096995094979396929594505050565b6000806000806000806000806080898b031215614e3857600080fd5b88356001600160401b0380821115614e4f57600080fd5b614e5b8c838d01614a97565b909a50985060208b0135915080821115614e7457600080fd5b614e808c838d01614a97565b909850965060408b0135915080821115614e9957600080fd5b614ea58c838d01614a97565b909650945060608b0135915080821115614dfb57600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715614ef657614ef6614ebe565b60405290565b604080519081016001600160401b0381118282101715614ef657614ef6614ebe565b60405160c081016001600160401b0381118282101715614ef657614ef6614ebe565b604051601f8201601f191681016001600160401b0381118282101715614f6857614f68614ebe565b604052919050565b63ffffffff8116811461106e57600080fd5b8035614b3c81614f70565b60006001600160401b03821115614fa657614fa6614ebe565b5060051b60200190565b600082601f830112614fc157600080fd5b81356020614fd6614fd183614f8d565b614f40565b82815260059290921b84018101918181019086841115614ff557600080fd5b8286015b8481101561501957803561500c81614b1c565b8352918301918301614ff9565b509695505050505050565b600082601f83011261503557600080fd5b81356020615045614fd183614f8d565b82815260059290921b8401810191818101908684111561506457600080fd5b8286015b848110156150195780358352918301918301615068565b600060e0828403121561509157600080fd5b615099614ed4565b90506150a482614b31565b81526150b260208301614b31565b60208201526150c360408301614b31565b6040820152606082013560608201526150de60808301614f82565b608082015260a08201356001600160401b03808211156150fd57600080fd5b61510985838601614fb0565b60a084015260c084013591508082111561512257600080fd5b5061512f84828501615024565b60c08301525092915050565b60006020828403121561514d57600080fd5b81356001600160401b0381111561516357600080fd5b61516f8482850161507f565b949350505050565b60006020828403121561518957600080fd5b813560ff81168114614ca957600080fd5b6000604082840312156151ac57600080fd5b6151b4614efc565b905081356151c181614b1c565b815260208201356bffffffffffffffffffffffff811681146151e257600080fd5b602082015292915050565b6000602080838503121561520057600080fd5b82356001600160401b038082111561521757600080fd5b818501915085601f83011261522b57600080fd5b8135615239614fd182614f8d565b81815260059190911b8301840190848101908883111561525857600080fd5b8585015b83811015615332578035858111156152745760008081fd5b860160e0818c03601f190181131561528c5760008081fd5b615294614f1e565b89830135888111156152a65760008081fd5b6152b48e8c83870101614fb0565b825250604080840135898111156152cb5760008081fd5b6152d98f8d83880101615024565b8c8401525060606152eb818601614b31565b82840152608091506152ff8f83870161519a565b9083015261530f60c08501614f82565b9082015261531e838301614b31565b60a08201528552505091860191860161525c565b5098975050505050505050565b801515811461106e57600080fd5b60008060008060006080868803121561536557600080fd5b85356001600160401b038082111561537c57600080fd5b9087019060e0828a03121561539057600080fd5b909550602087013590808211156153a657600080fd5b506153b388828901614a97565b9095509350506040860135915060608601356153ce8161533f565b809150509295509295909350565b600080604083850312156153ef57600080fd5b82356153fa81614b1c565b9150602083013561540a81614b1c565b809150509250929050565b60006040828403121561542757600080fd5b61542f614efc565b905081356001600160401b038082111561544857600080fd5b818401915084601f83011261545c57600080fd5b813560208282111561547057615470614ebe565b615482601f8301601f19168201614f40565b9250818352868183860101111561549857600080fd5b8181850182850137600081838501015282855280860135818601525050505092915050565b600080600080600060a086880312156154d557600080fd5b85356154e081614b1c565b945060208601356154f081614b1c565b935060408601356001600160401b038082111561550c57600080fd5b61551889838a01615415565b9450606088013591508082111561552e57600080fd5b5061553b88828901615415565b95989497509295608001359392505050565b6000806040838503121561556057600080fd5b823561556b81614b1c565b915060208301356001600160401b0381111561558657600080fd5b61559285828601614fb0565b9150509250929050565b600081518084526020808501945080840160005b838110156155cc578151875295820195908201906001016155b0565b509495945050505050565b602081526000614ca9602083018461559c565b600080602083850312156155fd57600080fd5b82356001600160401b0381111561561357600080fd5b614b1085828601614bf8565b6000806040838503121561563257600080fd5b823561563d81614b1c565b946020939093013593505050565b6000806000806080858703121561566157600080fd5b843561566c81614b1c565b935060208501359250604085013561568381614b1c565b9396929550929360600135925050565b600081518084526020808501945080840160005b838110156155cc5781516001600160a01b0316875295820195908201906001016156a7565b6040815260006156df6040830185615693565b82810360208401526112a0818561559c565b60008060006060848603121561570657600080fd5b833561571181614b1c565b925060208401356001600160401b0381111561572c57600080fd5b61573886828701615415565b925050604084013590509250925092565b60006060828403121561575b57600080fd5b614ca98383614be0565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156157a5576157a561577b565b5060010190565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b60008235605e198336030181126157f957600080fd5b9190910192915050565b6000808335601e1984360301811261581a57600080fd5b8301803591506001600160401b0382111561583457600080fd5b6020019150600581901b36038213156147af57600080fd5b60608101823561585b81614b1c565b6001600160a01b03908116835260208401359061587782614b1c565b166020830152604083013561588b81614f70565b63ffffffff811660408401525092915050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b6000602082840312156158df57600080fd5b8151614ca981614b1c565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60208082526037908201527f44656c65676174696f6e4d616e616765723a206f6e6c7953747261746567794d60408201527f616e616765724f72456967656e506f644d616e61676572000000000000000000606082015260800190565b6000602082840312156159a357600080fd5b8151614ca98161533f565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000823560de198336030181126157f957600080fd5b600060208284031215615a1e57600080fd5b8135614ca98161533f565b600060018060a01b03808351168452806020840151166020850152806040840151166040850152506060820151606084015263ffffffff608083015116608084015260a082015160e060a0850152615a8460e0850182615693565b905060c083015184820360c08601526112a0828261559c565b602081526000614ca96020830184615a29565b602081526000825160e06020840152615acd610100840182615693565b90506020840151601f19848303016040850152615aea828261559c565b915050604084015160018060a01b03808216606086015260608601519150808251166080860152506bffffffffffffffffffffffff60208201511660a0850152506080840151615b4260c085018263ffffffff169052565b5060a08401516001600160a01b03811660e0850152610a3b565b60008060408385031215615b6f57600080fd5b8251615b7a8161533f565b6020939093015192949293505050565b82815260406020820152600061516f6040830184615a29565b600060208284031215615bb557600080fd5b5051919050565b600082601f830112615bcd57600080fd5b81516020615bdd614fd183614f8d565b82815260059290921b84018101918181019086841115615bfc57600080fd5b8286015b848110156150195780518352918301918301615c00565b60008060408385031215615c2a57600080fd5b82516001600160401b0380821115615c4157600080fd5b818501915085601f830112615c5557600080fd5b81516020615c65614fd183614f8d565b82815260059290921b84018101918181019089841115615c8457600080fd5b948201945b83861015615cab578551615c9c81614b1c565b82529482019490820190615c89565b91880151919650909350505080821115615cc457600080fd5b5061559285828601615bbc565b60008219821115615ce457615ce461577b565b500190565b600082821015615cfb57615cfb61577b565b500390565b6001600160a01b039384168152919092166020820152604081019190915260600190565b600060208284031215615d3657600080fd5b8135614ca981614f70565b80546001600160a01b0319166001600160a01b0392909216919091179055565b8135615d6c81614b1c565b615d768183615d41565b50600181016020830135615d8981614b1c565b615d938183615d41565b506040830135615da281614f70565b815463ffffffff60a01b191660a09190911b63ffffffff60a01b161790555050565b6000615dd0368361507f565b92915050565b6020808252606e90820152600080516020615efc83398151915260408201527f645769746864726177616c3a207769746864726177616c44656c6179426c6f6360608201527f6b7320706572696f6420686173206e6f74207965742070617373656420666f7260808201526d207468697320737472617465677960901b60a082015260c00190565b82815260006020604081840152835180604085015260005b81811015615e9257858101830151858201606001528201615e76565b81811115615ea4576000606083870101525b50601f01601f191692909201606001949350505050565b600060208284031215615ecd57600080fd5b81516001600160e01b031981168114614ca957600080fd5b634e487b7160e01b600052602160045260246000fdfe44656c65676174696f6e4d616e616765722e5f636f6d706c6574655175657565a2646970667358221220cdf2100bf2c355b23c60f20623a150cdb75ab193528e0b944a9b4abc3d9bbcd464736f6c634300080c0033", + Bin: "0x6101006040523480156200001257600080fd5b506040516200618138038062006181833981016040819052620000359162000140565b6001600160a01b0380841660805280821660c052821660a0526200005862000065565b50504660e0525062000194565b600054610100900460ff1615620000d25760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000125576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200013d57600080fd5b50565b6000806000606084860312156200015657600080fd5b8351620001638162000127565b6020850151909350620001768162000127565b6040850151909250620001898162000127565b809150509250925092565b60805160a05160c05160e051615f516200023060003960006127790152600081816105e7015281816110ae0152818161142a01528181611e0d01528181612ad2015281816141390152614625015260006107d701526000818161052f0152818161107c015281816113f80152818161172001528181611ea101528181612b9f01528181612d220152818161425f01526146cb0152615f516000f3fe608060405234801561001057600080fd5b50600436106103785760003560e01c806360d7faed116101d3578063b7f06ebe11610104578063cf80873e116100a2578063f16172b01161007c578063f16172b01461097d578063f2fde38b14610990578063f698da25146109a3578063fabc1cbc146109ab57600080fd5b8063cf80873e14610936578063da8be86414610957578063eea9064b1461096a57600080fd5b8063c488375a116100de578063c488375a14610853578063c5e480db14610873578063c94b511114610919578063ca661c041461092c57600080fd5b8063b7f06ebe146107f9578063bb45fef21461081c578063c448feb81461084a57600080fd5b8063886f1195116101715780639104c3191161014b5780639104c3191461078457806399be81c81461079f578063a1788484146107b2578063b1344271146107d257600080fd5b8063886f1195146107405780638da5cb5b14610753578063900413471461076457600080fd5b80636d70f7ae116101ad5780636d70f7ae146106e7578063715018a6146106fa578063778e55f3146107025780637f5480711461072d57600080fd5b806360d7faed14610698578063635bbd10146106ab57806365da1264146106be57600080fd5b806329c77d4f116102ad5780634fc40b611161024b5780635ac86ab7116102255780635ac86ab71461062e5780635c975abb146106515780635cfe8d2c146106595780635f966f141461066c57600080fd5b80634fc40b6114610609578063595c6a6714610613578063597b36da1461061b57600080fd5b80633cdeb5e0116102875780633cdeb5e0146105695780633e28391d1461059857806343377382146105bb5780634665bcda146105e257600080fd5b806329c77d4f146104f7578063334043961461051757806339b70e381461052a57600080fd5b8063136439dd1161031a5780631bbce091116102f45780631bbce0911461049757806320606b70146104aa57806322bf40e4146104d157806328a573ae146104e457600080fd5b8063136439dd146104385780631522bf021461044b578063169283651461045e57600080fd5b80630dd8dd02116103565780630dd8dd02146103dd5780630f589e59146103fd57806310d67a2f14610412578063132d49671461042557600080fd5b80630449ca391461037d57806304a4f979146103a35780630b9f487a146103ca575b600080fd5b61039061038b366004614adb565b6109be565b6040519081526020015b60405180910390f35b6103907f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad81565b6103906103d8366004614b41565b610a43565b6103f06103eb366004614adb565b610b05565b60405161039a9190614b9c565b61041061040b366004614c39565b610e6e565b005b610410610420366004614c8c565b610fbe565b610410610433366004614cb0565b611071565b610410610446366004614cf1565b611128565b610410610459366004614d0a565b611267565b61039061046c366004614c8c565b6001600160a01b0316600090815260996020526040902060010154600160a01b900463ffffffff1690565b6103906104a5366004614cb0565b61127b565b6103907f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6104106104df366004614d75565b6112a9565b6104106104f2366004614cb0565b6113ed565b610390610505366004614c8c565b609b6020526000908152604090205481565b610410610525366004614e1c565b61149d565b6105517f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161039a565b610551610577366004614c8c565b6001600160a01b039081166000908152609960205260409020600101541690565b6105ab6105a6366004614c8c565b6115da565b604051901515815260200161039a565b6103907f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b81565b6105517f000000000000000000000000000000000000000000000000000000000000000081565b6103906213c68081565b6104106115fa565b61039061062936600461513b565b6116c1565b6105ab61063c366004615177565b606654600160ff9092169190911b9081161490565b606654610390565b6104106106673660046151ed565b6116f1565b61055161067a366004614c8c565b6001600160a01b039081166000908152609960205260409020541690565b6104106106a636600461534d565b61199c565b6104106106b9366004614cf1565b611a37565b6105516106cc366004614c8c565b609a602052600090815260409020546001600160a01b031681565b6105ab6106f5366004614c8c565b611a48565b610410611a68565b6103906107103660046153dc565b609860209081526000928352604080842090915290825290205481565b61041061073b3660046154bd565b611a7c565b606554610551906001600160a01b031681565b6033546001600160a01b0316610551565b61077761077236600461554d565b611b81565b60405161039a91906155d7565b61055173beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6104106107ad3660046155ea565b611c5b565b6103906107c0366004614c8c565b609f6020526000908152604090205481565b6105517f000000000000000000000000000000000000000000000000000000000000000081565b6105ab610807366004614cf1565b609e6020526000908152604090205460ff1681565b6105ab61082a36600461561f565b609c60209081526000928352604080842090915290825290205460ff1681565b610390609d5481565b610390610861366004614c8c565b60a16020526000908152604090205481565b6108e3610881366004614c8c565b6040805160608082018352600080835260208084018290529284018190526001600160a01b03948516815260998352839020835191820184528054851682526001015493841691810191909152600160a01b90920463ffffffff169082015290565b6040805182516001600160a01b039081168252602080850151909116908201529181015163ffffffff169082015260600161039a565b61039061092736600461564b565b611d2d565b61039062034bc081565b610949610944366004614c8c565b611de6565b60405161039a9291906156cc565b6103f0610965366004614c8c565b61219e565b6104106109783660046156f1565b612662565b61041061098b366004615749565b61266e565b61041061099e366004614c8c565b6126ff565b610390612775565b6104106109b9366004614cf1565b6127b3565b609d54600090815b83811015610a3b57600060a160008787858181106109e6576109e6615765565b90506020020160208101906109fb9190614c8c565b6001600160a01b03166001600160a01b0316815260200190815260200160002054905082811115610a2a578092505b50610a3481615791565b90506109c6565b509392505050565b604080517f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad6020808301919091526001600160a01b038681168385015288811660608401528716608083015260a0820185905260c08083018590528351808403909101815260e0909201909252805191012060009081610ac1612775565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f19018152919052805160209091012098975050505050505050565b60665460609060019060029081161415610b3a5760405162461bcd60e51b8152600401610b31906157ac565b60405180910390fd5b6000836001600160401b03811115610b5457610b54614ebe565b604051908082528060200260200182016040528015610b7d578160200160208202803683370190505b50336000908152609a60205260408120549192506001600160a01b03909116905b85811015610e6357868682818110610bb857610bb8615765565b9050602002810190610bca91906157e3565b610bd8906020810190615803565b9050878783818110610bec57610bec615765565b9050602002810190610bfe91906157e3565b610c089080615803565b905014610c7d5760405162461bcd60e51b815260206004820152603860248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a20696e707574206c656e677468206d69736d6174636800000000000000006064820152608401610b31565b33878783818110610c9057610c90615765565b9050602002810190610ca291906157e3565b610cb3906060810190604001614c8c565b6001600160a01b031614610d2f5760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a2077697468647261776572206d757374206265207374616b6572000000006064820152608401610b31565b610e343383898985818110610d4657610d46615765565b9050602002810190610d5891906157e3565b610d69906060810190604001614c8c565b8a8a86818110610d7b57610d7b615765565b9050602002810190610d8d91906157e3565b610d979080615803565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508e92508d9150889050818110610ddd57610ddd615765565b9050602002810190610def91906157e3565b610dfd906020810190615803565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061290f92505050565b838281518110610e4657610e46615765565b602090810291909101015280610e5b81615791565b915050610b9e565b509095945050505050565b336000908152609960205260409020546001600160a01b031615610f085760405162461bcd60e51b815260206004820152604560248201527f44656c65676174696f6e4d616e616765722e726567697374657241734f70657260448201527f61746f723a206f70657261746f722068617320616c72656164792072656769736064820152641d195c995960da1b608482015260a401610b31565b610f123384612ecf565b604080518082019091526060815260006020820152610f34338083600061316b565b336001600160a01b03167f8e8485583a2310d41f7c82b9427d0bd49bad74bb9cff9d3402a29d8f9b28a0e285604051610f6d919061584c565b60405180910390a2336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908484604051610fb092919061589e565b60405180910390a250505050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611011573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103591906158cd565b6001600160a01b0316336001600160a01b0316146110655760405162461bcd60e51b8152600401610b31906158ea565b61106e81613510565b50565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806110d05750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b6110ec5760405162461bcd60e51b8152600401610b3190615934565b6110f5836115da565b15611123576001600160a01b038084166000908152609a60205260409020541661112181858585613607565b505b505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015611170573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111949190615991565b6111b05760405162461bcd60e51b8152600401610b31906159ae565b606654818116146112295760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610b31565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b61126f613682565b611121848484846136dc565b6001600160a01b0383166000908152609b60205260408120546112a085828686611d2d565b95945050505050565b600054610100900460ff16158080156112c95750600054600160ff909116105b806112e35750303b1580156112e3575060005460ff166001145b6113465760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610b31565b6000805460ff191660011790558015611369576000805461ff0019166101001790555b6113738888613902565b61137b6139e8565b60975561138789613a7f565b61139086613ad1565b61139c858585856136dc565b80156113e2576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061144c5750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b6114685760405162461bcd60e51b8152600401610b3190615934565b611471836115da565b15611123576001600160a01b038084166000908152609a60205260409020541661112181858585613bcb565b606654600290600490811614156114c65760405162461bcd60e51b8152600401610b31906157ac565b600260c95414156115195760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610b31565b600260c95560005b888110156115c9576115b98a8a8381811061153e5761153e615765565b905060200281019061155091906159f6565b89898481811061156257611562615765565b90506020028101906115749190615803565b89898681811061158657611586615765565b9050602002013588888781811061159f5761159f615765565b90506020020160208101906115b49190615a0c565b613c46565b6115c281615791565b9050611521565b5050600160c9555050505050505050565b6001600160a01b039081166000908152609a602052604090205416151590565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015611642573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116669190615991565b6116825760405162461bcd60e51b8152600401610b31906159ae565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6000816040516020016116d49190615a9d565b604051602081830303815290604052805190602001209050919050565b60005b815181101561199857600082828151811061171157611711615765565b602002602001015190506000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663cd293f6f846040518263ffffffff1660e01b815260040161176a9190615ab0565b60408051808303816000875af1158015611788573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ac9190615b5c565b91509150811561198a576040808401516001600160a01b0381166000908152609f602052918220805491928291906117e383615791565b919050555060006040518060e00160405280846001600160a01b031681526020018760a001516001600160a01b031681526020018760600151600001516001600160a01b03168152602001838152602001876080015163ffffffff16815260200187600001518152602001876020015181525090506000611863826116c1565b6000818152609e602052604090205490915060ff16156118f95760405162461bcd60e51b815260206004820152604560248201527f44656c65676174696f6e4d616e616765722e6d6967726174655175657565645760448201527f69746864726177616c733a207769746864726177616c20616c72656164792065606482015264786973747360d81b608482015260a401610b31565b6000818152609e602052604090819020805460ff19166001179055517f9009ab153e8014fbfb02f2217f5cde7aa7f9ad734ae85ca3ee3f4ca2fdd499f9906119449083908590615b8a565b60405180910390a160408051868152602081018390527fdc00758b65eef71dc3780c04ebe36cab6bdb266c3a698187e29e0f0dca012630910160405180910390a1505050505b8360010193505050506116f4565b5050565b606654600290600490811614156119c55760405162461bcd60e51b8152600401610b31906157ac565b600260c9541415611a185760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610b31565b600260c955611a2a8686868686613c46565b5050600160c95550505050565b611a3f613682565b61106e81613ad1565b6001600160a01b0390811660009081526099602052604090205416151590565b611a70613682565b611a7a6000613a7f565b565b4283602001511015611b005760405162461bcd60e51b815260206004820152604160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b6572207369676e6174757265206578706972656064820152601960fa1b608482015260a401610b31565b6000609b6000876001600160a01b03166001600160a01b031681526020019081526020016000205490506000611b3c8783888860200151611d2d565b6001600160a01b0388166000908152609b602052604090206001840190558551909150611b6c9088908390614430565b611b788787868661316b565b50505050505050565b6060600082516001600160401b03811115611b9e57611b9e614ebe565b604051908082528060200260200182016040528015611bc7578160200160208202803683370190505b50905060005b8351811015610a3b576001600160a01b03851660009081526098602052604081208551909190869084908110611c0557611c05615765565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054828281518110611c4057611c40615765565b6020908102919091010152611c5481615791565b9050611bcd565b611c6433611a48565b611ce65760405162461bcd60e51b815260206004820152604760248201527f44656c65676174696f6e4d616e616765722e7570646174654f70657261746f7260448201527f4d657461646174615552493a2063616c6c6572206d75737420626520616e206f6064820152663832b930ba37b960c91b608482015260a401610b31565b336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908383604051611d2192919061589e565b60405180910390a25050565b604080517f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b6020808301919091526001600160a01b0387811683850152851660608301526080820186905260a08083018590528351808403909101815260c0909201909252805191012060009081611da3612775565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b6040516360f4062b60e01b81526001600160a01b03828116600483015260609182916000917f0000000000000000000000000000000000000000000000000000000000000000909116906360f4062b90602401602060405180830381865afa158015611e56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e7a9190615ba3565b6040516394f649dd60e01b81526001600160a01b03868116600483015291925060009182917f0000000000000000000000000000000000000000000000000000000000000000909116906394f649dd90602401600060405180830381865afa158015611eea573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611f129190810190615c17565b9150915060008313611f2957909590945092505050565b606080835160001415611fe3576040805160018082528183019092529060208083019080368337505060408051600180825281830190925292945090506020808301908036833701905050905073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac082600081518110611f9e57611f9e615765565b60200260200101906001600160a01b031690816001600160a01b0316815250508481600081518110611fd257611fd2615765565b602002602001018181525050612191565b8351611ff0906001615cd1565b6001600160401b0381111561200757612007614ebe565b604051908082528060200260200182016040528015612030578160200160208202803683370190505b50915081516001600160401b0381111561204c5761204c614ebe565b604051908082528060200260200182016040528015612075578160200160208202803683370190505b50905060005b845181101561210f5784818151811061209657612096615765565b60200260200101518382815181106120b0576120b0615765565b60200260200101906001600160a01b031690816001600160a01b0316815250508381815181106120e2576120e2615765565b60200260200101518282815181106120fc576120fc615765565b602090810291909101015260010161207b565b5073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac082600184516121349190615ce9565b8151811061214457612144615765565b60200260200101906001600160a01b031690816001600160a01b0316815250508481600184516121749190615ce9565b8151811061218457612184615765565b6020026020010181815250505b9097909650945050505050565b606654606090600190600290811614156121ca5760405162461bcd60e51b8152600401610b31906157ac565b6121d3836115da565b6122535760405162461bcd60e51b8152602060048201526044602482018190527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a207374908201527f616b6572206d7573742062652064656c65676174656420746f20756e64656c656064820152636761746560e01b608482015260a401610b31565b61225c83611a48565b156122cf5760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a206f7060448201527f657261746f72732063616e6e6f7420626520756e64656c6567617465640000006064820152608401610b31565b6001600160a01b03831661234b5760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6e6e6f7420756e64656c6567617465207a65726f2061646472657373000000006064820152608401610b31565b6001600160a01b038084166000818152609a60205260409020549091169033148061237e5750336001600160a01b038216145b806123a557506001600160a01b038181166000908152609960205260409020600101541633145b6124175760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6c6c65722063616e6e6f7420756e64656c6567617465207374616b65720000006064820152608401610b31565b60008061242386611de6565b9092509050336001600160a01b0387161461247957826001600160a01b0316866001600160a01b03167ff0eddf07e6ea14f388b47e1e94a0f464ecbd9eed4171130e0fc0e99fb4030a8a60405160405180910390a35b826001600160a01b0316866001600160a01b03167ffee30966a256b71e14bc0ebfc94315e28ef4a97a7131a9e2b7a310a73af4467660405160405180910390a36001600160a01b0386166000908152609a6020526040902080546001600160a01b031916905581516124fb576040805160008152602081019091529450612659565b81516001600160401b0381111561251457612514614ebe565b60405190808252806020026020018201604052801561253d578160200160208202803683370190505b50945060005b8251811015612657576040805160018082528183019092526000916020808301908036833750506040805160018082528183019092529293506000929150602080830190803683370190505090508483815181106125a3576125a3615765565b6020026020010151826000815181106125be576125be615765565b60200260200101906001600160a01b031690816001600160a01b0316815250508383815181106125f0576125f0615765565b60200260200101518160008151811061260b5761260b615765565b60200260200101818152505061262489878b858561290f565b88848151811061263657612636615765565b6020026020010181815250505050808061264f90615791565b915050612543565b505b50505050919050565b6111233384848461316b565b61267733611a48565b6126f55760405162461bcd60e51b815260206004820152604360248201527f44656c65676174696f6e4d616e616765722e6d6f646966794f70657261746f7260448201527f44657461696c733a2063616c6c6572206d75737420626520616e206f706572616064820152623a37b960e91b608482015260a401610b31565b61106e3382612ecf565b612707613682565b6001600160a01b03811661276c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b31565b61106e81613a7f565b60007f00000000000000000000000000000000000000000000000000000000000000004614156127a6575060975490565b6127ae6139e8565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612806573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061282a91906158cd565b6001600160a01b0316336001600160a01b03161461285a5760405162461bcd60e51b8152600401610b31906158ea565b6066541981196066541916146128d85760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610b31565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161125c565b60006001600160a01b0386166129a65760405162461bcd60e51b815260206004820152605060248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374616b65722063616e6e6f7460648201526f206265207a65726f206164647265737360801b608482015260a401610b31565b8251612a305760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374726174656769657320636160648201526c6e6e6f7420626520656d70747960981b608482015260a401610b31565b60005b8351811015612ddd576001600160a01b03861615612a8957612a898688868481518110612a6257612a62615765565b6020026020010151868581518110612a7c57612a7c615765565b6020026020010151613607565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06001600160a01b0316848281518110612ab957612ab9615765565b60200260200101516001600160a01b03161415612b82577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663beffbb8988858481518110612b1257612b12615765565b60200260200101516040518363ffffffff1660e01b8152600401612b4b9291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b158015612b6557600080fd5b505af1158015612b79573d6000803e3d6000fd5b50505050612dd5565b846001600160a01b0316876001600160a01b03161480612c5457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639b4da03d858381518110612bde57612bde615765565b60200260200101516040518263ffffffff1660e01b8152600401612c1191906001600160a01b0391909116815260200190565b602060405180830381865afa158015612c2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c529190615991565b155b612d205760405162461bcd60e51b8152602060048201526084602482018190527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448301527f6e6451756575655769746864726177616c3a2077697468647261776572206d7560648301527f73742062652073616d652061646472657373206173207374616b657220696620908201527f746869726450617274795472616e7366657273466f7262696464656e2061726560a482015263081cd95d60e21b60c482015260e401610b31565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638c80d4e588868481518110612d6257612d62615765565b6020026020010151868581518110612d7c57612d7c615765565b60200260200101516040518463ffffffff1660e01b8152600401612da293929190615d00565b600060405180830381600087803b158015612dbc57600080fd5b505af1158015612dd0573d6000803e3d6000fd5b505050505b600101612a33565b506001600160a01b0386166000908152609f60205260408120805491829190612e0583615791565b919050555060006040518060e00160405280896001600160a01b03168152602001886001600160a01b03168152602001876001600160a01b031681526020018381526020014363ffffffff1681526020018681526020018581525090506000612e6d826116c1565b6000818152609e602052604090819020805460ff19166001179055519091507f9009ab153e8014fbfb02f2217f5cde7aa7f9ad734ae85ca3ee3f4ca2fdd499f990612ebb9083908590615b8a565b60405180910390a198975050505050505050565b6000612ede6020830183614c8c565b6001600160a01b03161415612f785760405162461bcd60e51b815260206004820152605460248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a2063616e6e6f742073657420606561726e696e677352656365696064820152737665726020746f207a65726f206164647265737360601b608482015260a401610b31565b6213c680612f8c6060830160408401615d24565b63ffffffff1611156130415760405162461bcd60e51b815260206004820152606c60248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527f63616e6e6f74206265203e204d41585f5354414b45525f4f50545f4f55545f5760848201526b494e444f575f424c4f434b5360a01b60a482015260c401610b31565b6001600160a01b0382166000908152609960205260409081902060010154600160a01b900463ffffffff169061307d9060608401908401615d24565b63ffffffff1610156131135760405162461bcd60e51b815260206004820152605360248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527218d85b9b9bdd08189948191958dc99585cd959606a1b608482015260a401610b31565b6001600160a01b038216600090815260996020526040902081906131378282615d61565b505060405133907ffebe5cd24b2cbc7b065b9d0fdeb904461e4afcff57dd57acda1e7832031ba7ac90611d2190849061584c565b606654600090600190811614156131945760405162461bcd60e51b8152600401610b31906157ac565b61319d856115da565b1561321a5760405162461bcd60e51b815260206004820152604160248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2073746160448201527f6b657220697320616c7265616479206163746976656c792064656c65676174656064820152601960fa1b608482015260a401610b31565b61322384611a48565b6132a35760405162461bcd60e51b815260206004820152604560248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a206f706560448201527f7261746f72206973206e6f74207265676973746572656420696e20456967656e6064820152642630bcb2b960d91b608482015260a401610b31565b6001600160a01b038085166000908152609960205260409020600101541680158015906132d95750336001600160a01b03821614155b80156132ee5750336001600160a01b03861614155b1561345b57428460200151101561336d5760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f766572207369676e617475726520657870697265640000000000000000006064820152608401610b31565b6001600160a01b0381166000908152609c6020908152604080832086845290915290205460ff16156134075760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f76657253616c7420616c7265616479207370656e740000000000000000006064820152608401610b31565b6001600160a01b0381166000908152609c6020908152604080832086845282528220805460ff19166001179055850151613448908890889085908890610a43565b905061345982828760000151614430565b505b6001600160a01b038681166000818152609a602052604080822080546001600160a01b031916948a169485179055517fc3ee9f2e5fda98e8066a1f745b2df9285f416fe98cf2559cd21484b3d87433049190a36000806134ba88611de6565b9150915060005b82518110156113e257613508888a8584815181106134e1576134e1615765565b60200260200101518585815181106134fb576134fb615765565b6020026020010151613bcb565b6001016134c1565b6001600160a01b03811661359e5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610b31565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0380851660009081526098602090815260408083209386168352929052908120805483929061363e908490615ce9565b92505081905550836001600160a01b03167f6909600037b75d7b4733aedd815442b5ec018a827751c832aaff64eba5d6d2dd848484604051610fb093929190615d00565b6033546001600160a01b03163314611a7a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b31565b8281146137645760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a20696e707574206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a401610b31565b8260005b818110156138fa57600086868381811061378457613784615765565b90506020020160208101906137999190614c8c565b6001600160a01b038116600090815260a160205260408120549192508686858181106137c7576137c7615765565b90506020020135905062034bc081111561388b5760405162461bcd60e51b815260206004820152607360248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a205f7769746864726177616c60648201527f44656c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544860848201527244524157414c5f44454c41595f424c4f434b5360681b60a482015260c401610b31565b6001600160a01b038316600081815260a160209081526040918290208490558151928352820184905281018290527f0e7efa738e8b0ce6376a0c1af471655540d2e9a81647d7b09ed823018426576d9060600160405180910390a1505050806138f390615791565b9050613768565b505050505050565b6065546001600160a01b031615801561392357506001600160a01b03821615155b6139a55760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610b31565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261199882613510565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b62034bc0811115613b8a5760405162461bcd60e51b815260206004820152607160248201527f44656c65676174696f6e4d616e616765722e5f7365744d696e5769746864726160448201527f77616c44656c6179426c6f636b733a205f6d696e5769746864726177616c446560648201527f6c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544844526084820152704157414c5f44454c41595f424c4f434b5360781b60a482015260c401610b31565b609d5460408051918252602082018390527fafa003cd76f87ff9d62b35beea889920f33c0c42b8d45b74954d61d50f4b6b69910160405180910390a1609d55565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613c02908490615cd1565b92505081905550836001600160a01b03167f1ec042c965e2edd7107b51188ee0f383e22e76179041ab3a9d18ff151405166c848484604051610fb093929190615d00565b6000613c5461062987615dc4565b6000818152609e602052604090205490915060ff16613cd55760405162461bcd60e51b81526020600482015260436024820152600080516020615efc83398151915260448201527f645769746864726177616c3a20616374696f6e206973206e6f7420696e20717560648201526265756560e81b608482015260a401610b31565b609d544390613cea60a0890160808a01615d24565b63ffffffff16613cfa9190615cd1565b1115613d825760405162461bcd60e51b815260206004820152605f6024820152600080516020615efc83398151915260448201527f645769746864726177616c3a206d696e5769746864726177616c44656c61794260648201527f6c6f636b7320706572696f6420686173206e6f74207965742070617373656400608482015260a401610b31565b613d926060870160408801614c8c565b6001600160a01b0316336001600160a01b031614613e1f5760405162461bcd60e51b81526020600482015260506024820152600080516020615efc83398151915260448201527f645769746864726177616c3a206f6e6c7920776974686472617765722063616e60648201526f1031b7b6b83632ba329030b1ba34b7b760811b608482015260a401610b31565b8115613ea157613e3260a0870187615803565b85149050613ea15760405162461bcd60e51b81526020600482015260426024820152600080516020615efc83398151915260448201527f645769746864726177616c3a20696e707574206c656e677468206d69736d61746064820152610c6d60f31b608482015260a401610b31565b6000818152609e60205260409020805460ff1916905581156140065760005b613ecd60a0880188615803565b9050811015614000574360a16000613ee860a08b018b615803565b85818110613ef857613ef8615765565b9050602002016020810190613f0d9190614c8c565b6001600160a01b03168152602081019190915260400160002054613f3760a08a0160808b01615d24565b63ffffffff16613f479190615cd1565b1115613f655760405162461bcd60e51b8152600401610b3190615dd6565b613ff8613f756020890189614c8c565b33613f8360a08b018b615803565b85818110613f9357613f93615765565b9050602002016020810190613fa89190614c8c565b613fb560c08c018c615803565b86818110613fc557613fc5615765565b905060200201358a8a87818110613fde57613fde615765565b9050602002016020810190613ff39190614c8c565b6145ea565b600101613ec0565b506143f5565b336000908152609a60205260408120546001600160a01b0316905b61402e60a0890189615803565b90508110156143f2574360a1600061404960a08c018c615803565b8581811061405957614059615765565b905060200201602081019061406e9190614c8c565b6001600160a01b0316815260208101919091526040016000205461409860a08b0160808c01615d24565b63ffffffff166140a89190615cd1565b11156140c65760405162461bcd60e51b8152600401610b3190615dd6565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06140e860a08a018a615803565b838181106140f8576140f8615765565b905060200201602081019061410d9190614c8c565b6001600160a01b0316141561425d57600061412b60208a018a614c8c565b905060006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016630e81073c8361416c60c08e018e615803565b8781811061417c5761417c615765565b6040516001600160e01b031960e087901b1681526001600160a01b03909416600485015260200291909101356024830152506044016020604051808303816000875af11580156141d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141f49190615ba3565b6001600160a01b038084166000908152609a602052604090205491925016801561425557614255818461422a60a08f018f615803565b8881811061423a5761423a615765565b905060200201602081019061424f9190614c8c565b85613bcb565b5050506143ea565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c4623ea13389898581811061429f5761429f615765565b90506020020160208101906142b49190614c8c565b6142c160a08d018d615803565b868181106142d1576142d1615765565b90506020020160208101906142e69190614c8c565b6142f360c08e018e615803565b8781811061430357614303615765565b60405160e088901b6001600160e01b03191681526001600160a01b03968716600482015294861660248601529290941660448401526020909102013560648201526084019050600060405180830381600087803b15801561436357600080fd5b505af1158015614377573d6000803e3d6000fd5b505050506001600160a01b038216156143ea576143ea823361439c60a08c018c615803565b858181106143ac576143ac615765565b90506020020160208101906143c19190614c8c565b6143ce60c08d018d615803565b868181106143de576143de615765565b90506020020135613bcb565b600101614021565b50505b6040518181527fc97098c2f658800b4df29001527f7324bcdffcf6e8751a699ab920a1eced5b1d9060200160405180910390a1505050505050565b6001600160a01b0383163b1561454a57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906144709086908690600401615e5e565b602060405180830381865afa15801561448d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144b19190615ebb565b6001600160e01b031916146111235760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610b31565b826001600160a01b031661455e838361472a565b6001600160a01b0316146111235760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610b31565b6001600160a01b03831673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac014156146955760405162387b1360e81b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063387b13009061465e90889088908790600401615d00565b600060405180830381600087803b15801561467857600080fd5b505af115801561468c573d6000803e3d6000fd5b50505050614723565b60405163c608c7f360e01b81526001600160a01b03858116600483015284811660248301526044820184905282811660648301527f0000000000000000000000000000000000000000000000000000000000000000169063c608c7f390608401600060405180830381600087803b15801561470f57600080fd5b505af11580156113e2573d6000803e3d6000fd5b5050505050565b60008060006147398585614746565b91509150610a3b816147b6565b60008082516041141561477d5760208301516040840151606085015160001a61477187828585614971565b945094505050506147af565b8251604014156147a7576020830151604084015161479c868383614a5e565b9350935050506147af565b506000905060025b9250929050565b60008160048111156147ca576147ca615ee5565b14156147d35750565b60018160048111156147e7576147e7615ee5565b14156148355760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610b31565b600281600481111561484957614849615ee5565b14156148975760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610b31565b60038160048111156148ab576148ab615ee5565b14156149045760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610b31565b600481600481111561491857614918615ee5565b141561106e5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610b31565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156149a85750600090506003614a55565b8460ff16601b141580156149c057508460ff16601c14155b156149d15750600090506004614a55565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614a25573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116614a4e57600060019250925050614a55565b9150600090505b94509492505050565b6000806001600160ff1b03831681614a7b60ff86901c601b615cd1565b9050614a8987828885614971565b935093505050935093915050565b60008083601f840112614aa957600080fd5b5081356001600160401b03811115614ac057600080fd5b6020830191508360208260051b85010111156147af57600080fd5b60008060208385031215614aee57600080fd5b82356001600160401b03811115614b0457600080fd5b614b1085828601614a97565b90969095509350505050565b6001600160a01b038116811461106e57600080fd5b8035614b3c81614b1c565b919050565b600080600080600060a08688031215614b5957600080fd5b8535614b6481614b1c565b94506020860135614b7481614b1c565b93506040860135614b8481614b1c565b94979396509394606081013594506080013592915050565b6020808252825182820181905260009190848201906040850190845b81811015614bd457835183529284019291840191600101614bb8565b50909695505050505050565b600060608284031215614bf257600080fd5b50919050565b60008083601f840112614c0a57600080fd5b5081356001600160401b03811115614c2157600080fd5b6020830191508360208285010111156147af57600080fd5b600080600060808486031215614c4e57600080fd5b614c588585614be0565b925060608401356001600160401b03811115614c7357600080fd5b614c7f86828701614bf8565b9497909650939450505050565b600060208284031215614c9e57600080fd5b8135614ca981614b1c565b9392505050565b600080600060608486031215614cc557600080fd5b8335614cd081614b1c565b92506020840135614ce081614b1c565b929592945050506040919091013590565b600060208284031215614d0357600080fd5b5035919050565b60008060008060408587031215614d2057600080fd5b84356001600160401b0380821115614d3757600080fd5b614d4388838901614a97565b90965094506020870135915080821115614d5c57600080fd5b50614d6987828801614a97565b95989497509550505050565b60008060008060008060008060c0898b031215614d9157600080fd5b8835614d9c81614b1c565b97506020890135614dac81614b1c565b9650604089013595506060890135945060808901356001600160401b0380821115614dd657600080fd5b614de28c838d01614a97565b909650945060a08b0135915080821115614dfb57600080fd5b50614e088b828c01614a97565b999c989b5096995094979396929594505050565b6000806000806000806000806080898b031215614e3857600080fd5b88356001600160401b0380821115614e4f57600080fd5b614e5b8c838d01614a97565b909a50985060208b0135915080821115614e7457600080fd5b614e808c838d01614a97565b909850965060408b0135915080821115614e9957600080fd5b614ea58c838d01614a97565b909650945060608b0135915080821115614dfb57600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715614ef657614ef6614ebe565b60405290565b604080519081016001600160401b0381118282101715614ef657614ef6614ebe565b60405160c081016001600160401b0381118282101715614ef657614ef6614ebe565b604051601f8201601f191681016001600160401b0381118282101715614f6857614f68614ebe565b604052919050565b63ffffffff8116811461106e57600080fd5b8035614b3c81614f70565b60006001600160401b03821115614fa657614fa6614ebe565b5060051b60200190565b600082601f830112614fc157600080fd5b81356020614fd6614fd183614f8d565b614f40565b82815260059290921b84018101918181019086841115614ff557600080fd5b8286015b8481101561501957803561500c81614b1c565b8352918301918301614ff9565b509695505050505050565b600082601f83011261503557600080fd5b81356020615045614fd183614f8d565b82815260059290921b8401810191818101908684111561506457600080fd5b8286015b848110156150195780358352918301918301615068565b600060e0828403121561509157600080fd5b615099614ed4565b90506150a482614b31565b81526150b260208301614b31565b60208201526150c360408301614b31565b6040820152606082013560608201526150de60808301614f82565b608082015260a08201356001600160401b03808211156150fd57600080fd5b61510985838601614fb0565b60a084015260c084013591508082111561512257600080fd5b5061512f84828501615024565b60c08301525092915050565b60006020828403121561514d57600080fd5b81356001600160401b0381111561516357600080fd5b61516f8482850161507f565b949350505050565b60006020828403121561518957600080fd5b813560ff81168114614ca957600080fd5b6000604082840312156151ac57600080fd5b6151b4614efc565b905081356151c181614b1c565b815260208201356bffffffffffffffffffffffff811681146151e257600080fd5b602082015292915050565b6000602080838503121561520057600080fd5b82356001600160401b038082111561521757600080fd5b818501915085601f83011261522b57600080fd5b8135615239614fd182614f8d565b81815260059190911b8301840190848101908883111561525857600080fd5b8585015b83811015615332578035858111156152745760008081fd5b860160e0818c03601f190181131561528c5760008081fd5b615294614f1e565b89830135888111156152a65760008081fd5b6152b48e8c83870101614fb0565b825250604080840135898111156152cb5760008081fd5b6152d98f8d83880101615024565b8c8401525060606152eb818601614b31565b82840152608091506152ff8f83870161519a565b9083015261530f60c08501614f82565b9082015261531e838301614b31565b60a08201528552505091860191860161525c565b5098975050505050505050565b801515811461106e57600080fd5b60008060008060006080868803121561536557600080fd5b85356001600160401b038082111561537c57600080fd5b9087019060e0828a03121561539057600080fd5b909550602087013590808211156153a657600080fd5b506153b388828901614a97565b9095509350506040860135915060608601356153ce8161533f565b809150509295509295909350565b600080604083850312156153ef57600080fd5b82356153fa81614b1c565b9150602083013561540a81614b1c565b809150509250929050565b60006040828403121561542757600080fd5b61542f614efc565b905081356001600160401b038082111561544857600080fd5b818401915084601f83011261545c57600080fd5b813560208282111561547057615470614ebe565b615482601f8301601f19168201614f40565b9250818352868183860101111561549857600080fd5b8181850182850137600081838501015282855280860135818601525050505092915050565b600080600080600060a086880312156154d557600080fd5b85356154e081614b1c565b945060208601356154f081614b1c565b935060408601356001600160401b038082111561550c57600080fd5b61551889838a01615415565b9450606088013591508082111561552e57600080fd5b5061553b88828901615415565b95989497509295608001359392505050565b6000806040838503121561556057600080fd5b823561556b81614b1c565b915060208301356001600160401b0381111561558657600080fd5b61559285828601614fb0565b9150509250929050565b600081518084526020808501945080840160005b838110156155cc578151875295820195908201906001016155b0565b509495945050505050565b602081526000614ca9602083018461559c565b600080602083850312156155fd57600080fd5b82356001600160401b0381111561561357600080fd5b614b1085828601614bf8565b6000806040838503121561563257600080fd5b823561563d81614b1c565b946020939093013593505050565b6000806000806080858703121561566157600080fd5b843561566c81614b1c565b935060208501359250604085013561568381614b1c565b9396929550929360600135925050565b600081518084526020808501945080840160005b838110156155cc5781516001600160a01b0316875295820195908201906001016156a7565b6040815260006156df6040830185615693565b82810360208401526112a0818561559c565b60008060006060848603121561570657600080fd5b833561571181614b1c565b925060208401356001600160401b0381111561572c57600080fd5b61573886828701615415565b925050604084013590509250925092565b60006060828403121561575b57600080fd5b614ca98383614be0565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156157a5576157a561577b565b5060010190565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b60008235605e198336030181126157f957600080fd5b9190910192915050565b6000808335601e1984360301811261581a57600080fd5b8301803591506001600160401b0382111561583457600080fd5b6020019150600581901b36038213156147af57600080fd5b60608101823561585b81614b1c565b6001600160a01b03908116835260208401359061587782614b1c565b166020830152604083013561588b81614f70565b63ffffffff811660408401525092915050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b6000602082840312156158df57600080fd5b8151614ca981614b1c565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60208082526037908201527f44656c65676174696f6e4d616e616765723a206f6e6c7953747261746567794d60408201527f616e616765724f72456967656e506f644d616e61676572000000000000000000606082015260800190565b6000602082840312156159a357600080fd5b8151614ca98161533f565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000823560de198336030181126157f957600080fd5b600060208284031215615a1e57600080fd5b8135614ca98161533f565b600060018060a01b03808351168452806020840151166020850152806040840151166040850152506060820151606084015263ffffffff608083015116608084015260a082015160e060a0850152615a8460e0850182615693565b905060c083015184820360c08601526112a0828261559c565b602081526000614ca96020830184615a29565b602081526000825160e06020840152615acd610100840182615693565b90506020840151601f19848303016040850152615aea828261559c565b915050604084015160018060a01b03808216606086015260608601519150808251166080860152506bffffffffffffffffffffffff60208201511660a0850152506080840151615b4260c085018263ffffffff169052565b5060a08401516001600160a01b03811660e0850152610a3b565b60008060408385031215615b6f57600080fd5b8251615b7a8161533f565b6020939093015192949293505050565b82815260406020820152600061516f6040830184615a29565b600060208284031215615bb557600080fd5b5051919050565b600082601f830112615bcd57600080fd5b81516020615bdd614fd183614f8d565b82815260059290921b84018101918181019086841115615bfc57600080fd5b8286015b848110156150195780518352918301918301615c00565b60008060408385031215615c2a57600080fd5b82516001600160401b0380821115615c4157600080fd5b818501915085601f830112615c5557600080fd5b81516020615c65614fd183614f8d565b82815260059290921b84018101918181019089841115615c8457600080fd5b948201945b83861015615cab578551615c9c81614b1c565b82529482019490820190615c89565b91880151919650909350505080821115615cc457600080fd5b5061559285828601615bbc565b60008219821115615ce457615ce461577b565b500190565b600082821015615cfb57615cfb61577b565b500390565b6001600160a01b039384168152919092166020820152604081019190915260600190565b600060208284031215615d3657600080fd5b8135614ca981614f70565b80546001600160a01b0319166001600160a01b0392909216919091179055565b8135615d6c81614b1c565b615d768183615d41565b50600181016020830135615d8981614b1c565b615d938183615d41565b506040830135615da281614f70565b815463ffffffff60a01b191660a09190911b63ffffffff60a01b161790555050565b6000615dd0368361507f565b92915050565b6020808252606e90820152600080516020615efc83398151915260408201527f645769746864726177616c3a207769746864726177616c44656c6179426c6f6360608201527f6b7320706572696f6420686173206e6f74207965742070617373656420666f7260808201526d207468697320737472617465677960901b60a082015260c00190565b82815260006020604081840152835180604085015260005b81811015615e9257858101830151858201606001528201615e76565b81811115615ea4576000606083870101525b50601f01601f191692909201606001949350505050565b600060208284031215615ecd57600080fd5b81516001600160e01b031981168114614ca957600080fd5b634e487b7160e01b600052602160045260246000fdfe44656c65676174696f6e4d616e616765722e5f636f6d706c6574655175657565a2646970667358221220b6324a34688fcd78b840ed09631a8e7eed9dbd8a9c4344f68a9fcf71d784328d64736f6c634300080c0033", } // ContractDelegationManagerABI is the input ABI used to generate the binding from. diff --git a/contracts/bindings/EigenDAServiceManager/binding.go b/contracts/bindings/EigenDAServiceManager/binding.go index 208950f884..ae65d20132 100644 --- a/contracts/bindings/EigenDAServiceManager/binding.go +++ b/contracts/bindings/EigenDAServiceManager/binding.go @@ -67,6 +67,21 @@ type IEigenDAServiceManagerBatchHeader struct { ReferenceBlockNumber uint32 } +// IPaymentCoordinatorRangePayment is an auto generated low-level Go binding around an user-defined struct. +type IPaymentCoordinatorRangePayment struct { + StrategiesAndMultipliers []IPaymentCoordinatorStrategyAndMultiplier + Token common.Address + Amount *big.Int + StartTimestamp uint32 + Duration uint32 +} + +// IPaymentCoordinatorStrategyAndMultiplier is an auto generated low-level Go binding around an user-defined struct. +type IPaymentCoordinatorStrategyAndMultiplier struct { + Strategy common.Address + Multiplier *big.Int +} + // ISignatureUtilsSignatureWithSaltAndExpiry is an auto generated low-level Go binding around an user-defined struct. type ISignatureUtilsSignatureWithSaltAndExpiry struct { Signature []byte @@ -76,8 +91,8 @@ type ISignatureUtilsSignatureWithSaltAndExpiry struct { // ContractEigenDAServiceManagerMetaData contains all meta data concerning the ContractEigenDAServiceManager contract. var ContractEigenDAServiceManagerMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"__avsDirectory\",\"type\":\"address\",\"internalType\":\"contractIAVSDirectory\"},{\"name\":\"__registryCoordinator\",\"type\":\"address\",\"internalType\":\"contractIRegistryCoordinator\"},{\"name\":\"__stakeRegistry\",\"type\":\"address\",\"internalType\":\"contractIStakeRegistry\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"BLOCK_STALE_MEASURE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"STORE_DURATION_BLOCKS\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"THRESHOLD_DENOMINATOR\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"avsDirectory\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"batchId\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"batchIdToBatchMetadataHash\",\"inputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"blsApkRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIBLSApkRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"checkSignatures\",\"inputs\":[{\"name\":\"msgHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"referenceBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"params\",\"type\":\"tuple\",\"internalType\":\"structIBLSSignatureChecker.NonSignerStakesAndSignature\",\"components\":[{\"name\":\"nonSignerQuorumBitmapIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"nonSignerPubkeys\",\"type\":\"tuple[]\",\"internalType\":\"structBN254.G1Point[]\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"quorumApks\",\"type\":\"tuple[]\",\"internalType\":\"structBN254.G1Point[]\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apkG2\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"sigma\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"quorumApkIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"totalStakeIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"nonSignerStakeIndices\",\"type\":\"uint32[][]\",\"internalType\":\"uint32[][]\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIBLSSignatureChecker.QuorumStakeTotals\",\"components\":[{\"name\":\"signedStakeForQuorum\",\"type\":\"uint96[]\",\"internalType\":\"uint96[]\"},{\"name\":\"totalStakeForQuorum\",\"type\":\"uint96[]\",\"internalType\":\"uint96[]\"}]},{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"confirmBatch\",\"inputs\":[{\"name\":\"batchHeader\",\"type\":\"tuple\",\"internalType\":\"structIEigenDAServiceManager.BatchHeader\",\"components\":[{\"name\":\"blobHeadersRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"signedStakeForQuorums\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"referenceBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"nonSignerStakesAndSignature\",\"type\":\"tuple\",\"internalType\":\"structIBLSSignatureChecker.NonSignerStakesAndSignature\",\"components\":[{\"name\":\"nonSignerQuorumBitmapIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"nonSignerPubkeys\",\"type\":\"tuple[]\",\"internalType\":\"structBN254.G1Point[]\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"quorumApks\",\"type\":\"tuple[]\",\"internalType\":\"structBN254.G1Point[]\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apkG2\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"sigma\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"quorumApkIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"totalStakeIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"nonSignerStakeIndices\",\"type\":\"uint32[][]\",\"internalType\":\"uint32[][]\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"delegation\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIDelegationManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"deregisterOperatorFromAVS\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getOperatorRestakedStrategies\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getRestakeableStrategies\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"_pauserRegistry\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"},{\"name\":\"_initialPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_initialOwner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_batchConfirmers\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isBatchConfirmer\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"latestServeUntilBlock\",\"inputs\":[{\"name\":\"referenceBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"pauseAll\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pauserRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"quorumAdversaryThresholdPercentages\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"quorumConfirmationThresholdPercentages\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"quorumNumbersRequired\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"registerOperatorToAVS\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSignature\",\"type\":\"tuple\",\"internalType\":\"structISignatureUtils.SignatureWithSaltAndExpiry\",\"components\":[{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"registryCoordinator\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIRegistryCoordinator\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setBatchConfirmer\",\"inputs\":[{\"name\":\"_batchConfirmer\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setPauserRegistry\",\"inputs\":[{\"name\":\"newPauserRegistry\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setStaleStakesForbidden\",\"inputs\":[{\"name\":\"value\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"stakeRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStakeRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"staleStakesForbidden\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"taskNumber\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"trySignatureAndApkVerification\",\"inputs\":[{\"name\":\"msgHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"apk\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apkG2\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"sigma\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"outputs\":[{\"name\":\"pairingSuccessful\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"siganatureIsValid\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"unpause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateAVSMetadataURI\",\"inputs\":[{\"name\":\"_metadataURI\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"BatchConfirmed\",\"inputs\":[{\"name\":\"batchHeaderHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"batchId\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"BatchConfirmerStatusChanged\",\"inputs\":[{\"name\":\"batchConfirmer\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"status\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"PauserRegistrySet\",\"inputs\":[{\"name\":\"pauserRegistry\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIPauserRegistry\"},{\"name\":\"newPauserRegistry\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIPauserRegistry\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StaleStakesForbiddenUpdate\",\"inputs\":[{\"name\":\"value\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false}]", - Bin: "0x6101606040523480156200001257600080fd5b506040516200517f3803806200517f8339810160408190526200003591620002da565b6001600160a01b0380841660c052808316608052811660a052818381836200005c620001ff565b5050506001600160a01b03811660e081905260408051636830483560e01b815290516368304835916004808201926020929091908290030181865afa158015620000aa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000d091906200032e565b6001600160a01b0316610100816001600160a01b031681525050806001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000129573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200014f91906200032e565b6001600160a01b0316610120816001600160a01b031681525050610100516001600160a01b031663df5cf7236040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d191906200032e565b6001600160a01b0316610140525060c9805460ff19166001179055620001f6620001ff565b50505062000355565b603254610100900460ff16156200026c5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60325460ff9081161015620002bf576032805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b0381168114620002d757600080fd5b50565b600080600060608486031215620002f057600080fd5b8351620002fd81620002c1565b60208501519093506200031081620002c1565b60408501519092506200032381620002c1565b809150509250925092565b6000602082840312156200034157600080fd5b81516200034e81620002c1565b9392505050565b60805160a05160c05160e051610100516101205161014051614d356200044a6000396000818161053501526118c801526000818161034b0152611aaa01526000818161039d01528181611c800152611e420152600081816103ea01528181610e46015281816115930152818161172b01526119650152600081816103c101528181612702015281816127d6015261284e015260008181610b6f01528181610cca01528181610d610152818161294b01528181612ace0152612b6d01526000818161099a01528181610a2901528181610aa9015281816126ae0152818161277a015281816128890152612a290152614d356000f3fe608060405234801561001057600080fd5b50600436106102325760003560e01c80637794965a11610130578063bafa9107116100b8578063eccbbfc91161007c578063eccbbfc91461058f578063ef024458146105af578063f1220983146105b7578063f2fde38b146105ca578063fabc1cbc146105dd57600080fd5b8063bafa910714610510578063df5cf72314610530578063e15234ff14610557578063e481af9d14610574578063eaefd27d1461057c57600080fd5b80639926ee7d116100ff5780639926ee7d146104a7578063a364f4da146104ba578063a5b7890a146104cd578063a98fb355146104f0578063b98d09081461050357600080fd5b80637794965a146104435780638687feae14610456578063886f1195146104835780638da5cb5b1461049657600080fd5b80635c975abb116101be5780636b3aa72e116101825780636b3aa72e146103bf5780636d14a987146103e55780636efb46361461040c578063715018a61461042d57806372d18e8d1461043557600080fd5b80635c975abb146103345780635df45946146103465780635e033476146103855780635e8b3f2d1461038f578063683048351461039857600080fd5b8063416c7e5e11610205578063416c7e5e146102ae578063468027d4146102c15780634972134a146102d4578063595c6a67146102f95780635ac86ab71461030157600080fd5b806310d67a2f14610237578063136439dd1461024c578063171f1d5b1461025f57806333cfb7b71461028e575b600080fd5b61024a610245366004613d11565b6105f0565b005b61024a61025a366004613d2e565b6106ac565b61027261026d366004613e98565b6107eb565b6040805192151583529015156020830152015b60405180910390f35b6102a161029c366004613d11565b610975565b6040516102859190613ee9565b61024a6102bc366004613f44565b610e44565b61024a6102cf366004613f84565b610fba565b6000546102e49063ffffffff1681565b60405163ffffffff9091168152602001610285565b61024a611119565b61032461030f366004614060565b60fc54600160ff9092169190911b9081161490565b6040519015158152602001610285565b60fc545b604051908152602001610285565b61036d7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610285565b6102e4620189c081565b6102e461012c81565b61036d7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000061036d565b61036d7f000000000000000000000000000000000000000000000000000000000000000081565b61041f61041a36600461430b565b6111e0565b6040516102859291906143fe565b61024a6120f7565b60005463ffffffff166102e4565b61024a610451366004614447565b61210b565b610476604051806040016040528060018152602001602160f81b81525081565b60405161028591906144ff565b60fb5461036d906001600160a01b031681565b6065546001600160a01b031661036d565b61024a6104b5366004614589565b6126a3565b61024a6104c8366004613d11565b61276f565b6103246104db366004613d11565b60026020526000908152604090205460ff1681565b61024a6104fe366004614634565b61282f565b60c9546103249060ff1681565b610476604051806040016040528060018152602001603760f81b81525081565b61036d7f000000000000000000000000000000000000000000000000000000000000000081565b610476604051806040016040528060018152602001600081525081565b6102a1612883565b6102e461058a366004614684565b612c4c565b61033861059d366004614684565b60016020526000908152604090205481565b610338606481565b61024a6105c5366004613d11565b612c6e565b61024a6105d8366004613d11565b612c7f565b61024a6105eb366004613d2e565b612cf5565b60fb60009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610643573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610667919061469f565b6001600160a01b0316336001600160a01b0316146106a05760405162461bcd60e51b8152600401610697906146bc565b60405180910390fd5b6106a981612e51565b50565b60fb5460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107189190614706565b6107345760405162461bcd60e51b815260040161069790614723565b60fc54818116146107ad5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610697565b60fc81905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001878760000151886020015188600001516000600281106108335761083361476b565b60200201518951600160200201518a602001516000600281106108585761085861476b565b60200201518b602001516001600281106108745761087461476b565b602090810291909101518c518d8301516040516108d19a99989796959401988952602089019790975260408801959095526060870193909352608086019190915260a085015260c084015260e08301526101008201526101200190565b6040516020818303038152906040528051906020012060001c6108f49190614781565b905061096761090d6109068884612f48565b8690612fdf565b610915613073565b61095d61094e85610948604080518082018252600080825260209182015281518083019092526001825260029082015290565b90612f48565b6109578c613133565b90612fdf565b886201d4c06131c3565b909890975095505050505050565b6040516309aa152760e11b81526001600160a01b0382811660048301526060916000917f000000000000000000000000000000000000000000000000000000000000000016906313542a4e90602401602060405180830381865afa1580156109e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a0591906147a3565b60405163871ef04960e01b8152600481018290529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063871ef04990602401602060405180830381865afa158015610a70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9491906147bc565b90506001600160c01b0381161580610b2e57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2991906147e5565b60ff16155b15610b4a57505060408051600081526020810190915292915050565b6000610b5e826001600160c01b03166133e7565b90506000805b8251811015610c34577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633ca5a5f5848381518110610bae57610bae61476b565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015610bf2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c1691906147a3565b610c209083614818565b915080610c2c81614830565b915050610b64565b506000816001600160401b03811115610c4f57610c4f613d47565b604051908082528060200260200182016040528015610c78578160200160208202803683370190505b5090506000805b8451811015610e37576000858281518110610c9c57610c9c61476b565b0160200151604051633ca5a5f560e01b815260f89190911c6004820181905291506000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633ca5a5f590602401602060405180830381865afa158015610d11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3591906147a3565b905060005b81811015610e21576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa158015610daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd39190614862565b60000151868681518110610de957610de961476b565b6001600160a01b039092166020928302919091019091015284610e0b81614830565b9550508080610e1990614830565b915050610d3a565b5050508080610e2f90614830565b915050610c7f565b5090979650505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ea2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec6919061469f565b6001600160a01b0316336001600160a01b031614610f725760405162461bcd60e51b815260206004820152605c60248201527f424c535369676e6174757265436865636b65722e6f6e6c79436f6f7264696e6160448201527f746f724f776e65723a2063616c6c6572206973206e6f7420746865206f776e6560648201527f72206f6620746865207265676973747279436f6f7264696e61746f7200000000608482015260a401610697565b60c9805460ff19168215159081179091556040519081527f40e4ed880a29e0f6ddce307457fb75cddf4feef7d3ecb0301bfdf4976a0e2dfc906020015b60405180910390a150565b603254610100900460ff1615808015610fda5750603254600160ff909116105b80610ff45750303b158015610ff4575060325460ff166001145b6110575760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610697565b6032805460ff19166001179055801561107a576032805461ff0019166101001790555b61108485856134a9565b61108d83613593565b60005b82518110156110cb576110bb8382815181106110ae576110ae61476b565b60200260200101516135e5565b6110c481614830565b9050611090565b508015611112576032805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60fb5460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015611161573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111859190614706565b6111a15760405162461bcd60e51b815260040161069790614723565b60001960fc81905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60408051808201909152606080825260208201526000846112575760405162461bcd60e51b81526020600482015260376024820152600080516020614ce083398151915260448201527f7265733a20656d7074792071756f72756d20696e7075740000000000000000006064820152608401610697565b6040830151518514801561126f575060a08301515185145b801561127f575060c08301515185145b801561128f575060e08301515185145b6112f95760405162461bcd60e51b81526020600482015260416024820152600080516020614ce083398151915260448201527f7265733a20696e7075742071756f72756d206c656e677468206d69736d6174636064820152600d60fb1b608482015260a401610697565b825151602084015151146113715760405162461bcd60e51b815260206004820152604460248201819052600080516020614ce0833981519152908201527f7265733a20696e707574206e6f6e7369676e6572206c656e677468206d69736d6064820152630c2e8c6d60e31b608482015260a401610697565b4363ffffffff168463ffffffff16106113e05760405162461bcd60e51b815260206004820152603c6024820152600080516020614ce083398151915260448201527f7265733a20696e76616c6964207265666572656e636520626c6f636b000000006064820152608401610697565b6040805180820182526000808252602080830191909152825180840190935260608084529083015290866001600160401b0381111561142157611421613d47565b60405190808252806020026020018201604052801561144a578160200160208202803683370190505b506020820152866001600160401b0381111561146857611468613d47565b604051908082528060200260200182016040528015611491578160200160208202803683370190505b50815260408051808201909152606080825260208201528560200151516001600160401b038111156114c5576114c5613d47565b6040519080825280602002602001820160405280156114ee578160200160208202803683370190505b5081526020860151516001600160401b0381111561150e5761150e613d47565b604051908082528060200260200182016040528015611537578160200160208202803683370190505b50816020018190525060006116098a8a8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051639aa1653d60e01b815290516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169350639aa1653d925060048083019260209291908290030181865afa1580156115e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061160491906147e5565b613648565b905060005b8760200151518110156118a457611653886020015182815181106116345761163461476b565b6020026020010151805160009081526020918201519091526040902090565b836020015182815181106116695761166961476b565b6020908102919091010152801561172957602083015161168a6001836148a1565b8151811061169a5761169a61476b565b602002602001015160001c836020015182815181106116bb576116bb61476b565b602002602001015160001c11611729576040805162461bcd60e51b8152602060048201526024810191909152600080516020614ce083398151915260448201527f7265733a206e6f6e5369676e65725075626b657973206e6f7420736f727465646064820152608401610697565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166304ec63518460200151838151811061176e5761176e61476b565b60200260200101518b8b60000151858151811061178d5761178d61476b565b60200260200101516040518463ffffffff1660e01b81526004016117ca9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa1580156117e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061180b91906147bc565b6001600160c01b03168360000151828151811061182a5761182a61476b565b60200260200101818152505061189061090661186484866000015185815181106118565761185661476b565b6020026020010151166136d9565b8a60200151848151811061187a5761187a61476b565b602002602001015161370490919063ffffffff16565b94508061189c81614830565b91505061160e565b50506118af836137e8565b60c95490935060ff166000816118c6576000611948565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c448feb86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611924573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194891906147a3565b905060005b8a811015611fc6578215611aa8578963ffffffff16827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663249a0c428f8f868181106119a4576119a461476b565b60405160e085901b6001600160e01b031916815292013560f81c600483015250602401602060405180830381865afa1580156119e4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a0891906147a3565b611a129190614818565b11611aa85760405162461bcd60e51b81526020600482015260666024820152600080516020614ce083398151915260448201527f7265733a205374616b6552656769737472792075706461746573206d7573742060648201527f62652077697468696e207769746864726177616c44656c6179426c6f636b732060848201526577696e646f7760d01b60a482015260c401610697565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166368bccaac8d8d84818110611ae957611ae961476b565b9050013560f81c60f81b60f81c8c8c60a001518581518110611b0d57611b0d61476b565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611b69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b8d91906148b8565b6001600160401b031916611bb08a6040015183815181106116345761163461476b565b67ffffffffffffffff191614611c4c5760405162461bcd60e51b81526020600482015260616024820152600080516020614ce083398151915260448201527f7265733a2071756f72756d41706b206861736820696e2073746f72616765206460648201527f6f6573206e6f74206d617463682070726f76696465642071756f72756d2061706084820152606b60f81b60a482015260c401610697565b611c7c89604001518281518110611c6557611c6561476b565b602002602001015187612fdf90919063ffffffff16565b95507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c8294c568d8d84818110611cbf57611cbf61476b565b9050013560f81c60f81b60f81c8c8c60c001518581518110611ce357611ce361476b565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611d3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d6391906148e3565b85602001518281518110611d7957611d7961476b565b6001600160601b03909216602092830291909101820152850151805182908110611da557611da561476b565b602002602001015185600001518281518110611dc357611dc361476b565b60200260200101906001600160601b031690816001600160601b0316815250506000805b8a6020015151811015611fb157611e3b86600001518281518110611e0d57611e0d61476b565b60200260200101518f8f86818110611e2757611e2761476b565b600192013560f81c9290921c811614919050565b15611f9f577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f2be94ae8f8f86818110611e8157611e8161476b565b9050013560f81c60f81b60f81c8e89602001518581518110611ea557611ea561476b565b60200260200101518f60e001518881518110611ec357611ec361476b565b60200260200101518781518110611edc57611edc61476b565b60209081029190910101516040516001600160e01b031960e087901b16815260ff909416600485015263ffffffff92831660248501526044840191909152166064820152608401602060405180830381865afa158015611f40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f6491906148e3565b8751805185908110611f7857611f7861476b565b60200260200101818151611f8c91906148fe565b6001600160601b03169052506001909101905b80611fa981614830565b915050611de7565b50508080611fbe90614830565b91505061194d565b505050600080611fe08c868a606001518b608001516107eb565b91509150816120515760405162461bcd60e51b81526020600482015260436024820152600080516020614ce083398151915260448201527f7265733a2070616972696e6720707265636f6d70696c652063616c6c206661696064820152621b195960ea1b608482015260a401610697565b806120b25760405162461bcd60e51b81526020600482015260396024820152600080516020614ce083398151915260448201527f7265733a207369676e617475726520697320696e76616c6964000000000000006064820152608401610697565b505060008782602001516040516020016120cd929190614926565b60408051808303601f190181529190528051602090910120929b929a509198505050505050505050565b6120ff613883565b6121096000613593565b565b60fc54600090600190811614156121645760405162461bcd60e51b815260206004820152601960248201527f5061757361626c653a20696e64657820697320706175736564000000000000006044820152606401610697565b3360009081526002602052604090205460ff166121d85760405162461bcd60e51b815260206004820152602c60248201527f6f6e6c794261746368436f6e6669726d65723a206e6f742066726f6d2062617460448201526b31b41031b7b73334b936b2b960a11b6064820152608401610697565b3233146122555760405162461bcd60e51b81526020600482015260516024820152600080516020614cc083398151915260448201527f63683a2068656164657220616e64206e6f6e7369676e65722064617461206d75606482015270737420626520696e2063616c6c6461746160781b608482015260a401610697565b436122666080850160608601614684565b63ffffffff16106122e55760405162461bcd60e51b815260206004820152604f6024820152600080516020614cc083398151915260448201527f63683a20737065636966696564207265666572656e6365426c6f636b4e756d6260648201526e657220697320696e2066757475726560881b608482015260a401610697565b63ffffffff431661012c6122ff6080860160608701614684565b612309919061496e565b63ffffffff16101561238f5760405162461bcd60e51b81526020600482015260556024820152600080516020614cc083398151915260448201527f63683a20737065636966696564207265666572656e6365426c6f636b4e756d62606482015274195c881a5cc81d1bdbc819985c881a5b881c185cdd605a1b608482015260a401610697565b61239c6040840184614996565b90506123ab6020850185614996565b9050146124435760405162461bcd60e51b81526020600482015260666024820152600080516020614cc083398151915260448201527f63683a2071756f72756d4e756d6265727320616e64207369676e65645374616b60648201527f65466f7251756f72756d73206d757374206265206f66207468652073616d65206084820152650d8cadccee8d60d31b60a482015260c401610697565b6000612456612451856149e3565b6138dd565b90506000806124828361246c6020890189614996565b61247c60808b0160608c01614684565b896111e0565b9150915060005b6124966040880188614996565b90508110156125d8576124ac6040880188614996565b828181106124bc576124bc61476b565b9050013560f81c60f81b60f81c60ff16836020015182815181106124e2576124e261476b565b60200260200101516124f49190614a83565b6001600160601b03166064846000015183815181106125155761251561476b565b60200260200101516001600160601b03166125309190614ab2565b10156125c65760405162461bcd60e51b815260206004820152606460248201819052600080516020614cc083398151915260448301527f63683a207369676e61746f7269657320646f206e6f74206f776e206174206c65908201527f617374207468726573686f6c642070657263656e74616765206f6620612071756084820152636f72756d60e01b60a482015260c401610697565b806125d081614830565b915050612489565b506000805463ffffffff16906125ed88613958565b6040805160208082018490528183018790524360e01b6001600160e01b0319166060830152825160448184030181526064830180855281519183019190912063ffffffff881660008181526001909452928590205552905191925086917fc75557c4ad49697e231449688be13ef11cb6be8ed0d18819d8dde074a5a16f8a9181900360840190a261267f82600161496e565b6000805463ffffffff191663ffffffff929092169190911790555050505050505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146126eb5760405162461bcd60e51b815260040161069790614ad1565b604051639926ee7d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639926ee7d906127399085908590600401614b49565b600060405180830381600087803b15801561275357600080fd5b505af1158015612767573d6000803e3d6000fd5b505050505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146127b75760405162461bcd60e51b815260040161069790614ad1565b6040516351b27a6d60e11b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a364f4da906024015b600060405180830381600087803b15801561281b57600080fd5b505af1158015611112573d6000803e3d6000fd5b612837613883565b60405163a98fb35560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a98fb355906128019084906004016144ff565b606060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128e5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061290991906147e5565b60ff1690508061292757505060408051600081526020810190915290565b6000805b828110156129dc57604051633ca5a5f560e01b815260ff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa15801561299a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129be91906147a3565b6129c89083614818565b9150806129d481614830565b91505061292b565b506000816001600160401b038111156129f7576129f7613d47565b604051908082528060200260200182016040528015612a20578160200160208202803683370190505b5090506000805b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612aa991906147e5565b60ff16811015612c4257604051633ca5a5f560e01b815260ff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612b1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b4191906147a3565b905060005b81811015612c2d576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa158015612bbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bdf9190614862565b60000151858581518110612bf557612bf561476b565b6001600160a01b039092166020928302919091019091015283612c1781614830565b9450508080612c2590614830565b915050612b46565b50508080612c3a90614830565b915050612a27565b5090949350505050565b600061012c612c5e620189c08461496e565b612c68919061496e565b92915050565b612c76613883565b6106a9816135e5565b612c87613883565b6001600160a01b038116612cec5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610697565b6106a981613593565b60fb60009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d6c919061469f565b6001600160a01b0316336001600160a01b031614612d9c5760405162461bcd60e51b8152600401610697906146bc565b60fc5419811960fc54191614612e1a5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610697565b60fc81905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016107e0565b6001600160a01b038116612edf5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610697565b60fb54604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a160fb80546001600160a01b0319166001600160a01b0392909216919091179055565b6040805180820190915260008082526020820152612f64613c22565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa9050808015612f9757612f99565bfe5b5080612fd75760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b6044820152606401610697565b505092915050565b6040805180820190915260008082526020820152612ffb613c40565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa9050808015612f97575080612fd75760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b6044820152606401610697565b61307b613c5e565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b604080518082019091526000808252602082015260008080613163600080516020614ca083398151915286614781565b90505b61316f8161396b565b9093509150600080516020614ca08339815191528283098314156131a9576040805180820190915290815260208101919091529392505050565b600080516020614ca0833981519152600182089050613166565b6040805180820182528681526020808201869052825180840190935286835282018490526000918291906131f5613c83565b60005b60028110156133ba57600061320e826006614ab2565b90508482600281106132225761322261476b565b60200201515183613234836000614818565b600c81106132445761324461476b565b602002015284826002811061325b5761325b61476b565b602002015160200151838260016132729190614818565b600c81106132825761328261476b565b60200201528382600281106132995761329961476b565b60200201515151836132ac836002614818565b600c81106132bc576132bc61476b565b60200201528382600281106132d3576132d361476b565b60200201515160016020020151836132ec836003614818565b600c81106132fc576132fc61476b565b60200201528382600281106133135761331361476b565b60200201516020015160006002811061332e5761332e61476b565b60200201518361333f836004614818565b600c811061334f5761334f61476b565b60200201528382600281106133665761336661476b565b6020020151602001516001600281106133815761338161476b565b602002015183613392836005614818565b600c81106133a2576133a261476b565b602002015250806133b281614830565b9150506131f8565b506133c3613ca2565b60006020826101808560088cfa9151919c9115159b50909950505050505050505050565b60606000806133f5846136d9565b61ffff166001600160401b0381111561341057613410613d47565b6040519080825280601f01601f19166020018201604052801561343a576020820181803683370190505b5090506000805b825182108015613452575061010081105b15612c42576001811b935085841615613499578060f81b83838151811061347b5761347b61476b565b60200101906001600160f81b031916908160001a9053508160010191505b6134a281614830565b9050613441565b60fb546001600160a01b03161580156134ca57506001600160a01b03821615155b61354c5760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610697565b60fc81905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261358f82612e51565b5050565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038116600081815260026020908152604091829020805460ff8082161560ff1990921682179092558351948552161515908301527f5c3265f5fb462ef4930fe47beaa183647c97f19ba545b761f41bc8cd4621d4149101610faf565b600080613654846139ed565b9050808360ff166001901b116136d25760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610697565b9392505050565b6000805b8215612c68576136ee6001846148a1565b90921691806136fc81614b94565b9150506136dd565b60408051808201909152600080825260208201526102008261ffff16106137605760405162461bcd60e51b815260206004820152601060248201526f7363616c61722d746f6f2d6c6172676560801b6044820152606401610697565b8161ffff1660011415613774575081612c68565b6040805180820190915260008082526020820181905284906001905b8161ffff168661ffff16106137dd57600161ffff871660ff83161c811614156137c0576137bd8484612fdf565b93505b6137ca8384612fdf565b92506201fffe600192831b169101613790565b509195945050505050565b6040805180820190915260008082526020820152815115801561380d57506020820151155b1561382b575050604080518082019091526000808252602082015290565b604051806040016040528083600001518152602001600080516020614ca0833981519152846020015161385e9190614781565b61387690600080516020614ca08339815191526148a1565b905292915050565b919050565b6065546001600160a01b031633146121095760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610697565b600061391a82604080518082019091526000808252602082015250604080518082019091528151815260609091015163ffffffff16602082015290565b6040805182516020808301919091529092015163ffffffff16908201526060015b604051602081830303815290604052805190602001209050919050565b60008160405160200161393b9190614c24565b60008080600080516020614ca08339815191526003600080516020614ca083398151915286600080516020614ca08339815191528889090908905060006139e1827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52600080516020614ca0833981519152613b7a565b91959194509092505050565b600061010082511115613a765760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610697565b8151613a8457506000919050565b60008083600081518110613a9a57613a9a61476b565b0160200151600160f89190911c81901b92505b8451811015613b7157848181518110613ac857613ac861476b565b0160200151600160f89190911c1b9150828211613b5d5760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610697565b91811791613b6a81614830565b9050613aad565b50909392505050565b600080613b85613ca2565b613b8d613cc0565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa9250828015612f97575082613c175760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610697565b505195945050505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b6040518060400160405280613c71613cde565b8152602001613c7e613cde565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b6001600160a01b03811681146106a957600080fd5b600060208284031215613d2357600080fd5b81356136d281613cfc565b600060208284031215613d4057600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715613d7f57613d7f613d47565b60405290565b60405161010081016001600160401b0381118282101715613d7f57613d7f613d47565b604051601f8201601f191681016001600160401b0381118282101715613dd057613dd0613d47565b604052919050565b600060408284031215613dea57600080fd5b613df2613d5d565b9050813581526020820135602082015292915050565b600082601f830112613e1957600080fd5b613e21613d5d565b806040840185811115613e3357600080fd5b845b81811015613e4d578035845260209384019301613e35565b509095945050505050565b600060808284031215613e6a57600080fd5b613e72613d5d565b9050613e7e8383613e08565b8152613e8d8360408401613e08565b602082015292915050565b6000806000806101208587031215613eaf57600080fd5b84359350613ec08660208701613dd8565b9250613ecf8660608701613e58565b9150613ede8660e08701613dd8565b905092959194509250565b6020808252825182820181905260009190848201906040850190845b81811015613f2a5783516001600160a01b031683529284019291840191600101613f05565b50909695505050505050565b80151581146106a957600080fd5b600060208284031215613f5657600080fd5b81356136d281613f36565b60006001600160401b03821115613f7a57613f7a613d47565b5060051b60200190565b60008060008060808587031215613f9a57600080fd5b8435613fa581613cfc565b935060208581013593506040860135613fbd81613cfc565b925060608601356001600160401b03811115613fd857600080fd5b8601601f81018813613fe957600080fd5b8035613ffc613ff782613f61565b613da8565b81815260059190911b8201830190838101908a83111561401b57600080fd5b928401925b8284101561404257833561403381613cfc565b82529284019290840190614020565b979a9699509497505050505050565b60ff811681146106a957600080fd5b60006020828403121561407257600080fd5b81356136d281614051565b803563ffffffff8116811461387e57600080fd5b600082601f8301126140a257600080fd5b813560206140b2613ff783613f61565b82815260059290921b840181019181810190868411156140d157600080fd5b8286015b848110156140f3576140e68161407d565b83529183019183016140d5565b509695505050505050565b600082601f83011261410f57600080fd5b8135602061411f613ff783613f61565b82815260069290921b8401810191818101908684111561413e57600080fd5b8286015b848110156140f3576141548882613dd8565b835291830191604001614142565b600082601f83011261417357600080fd5b81356020614183613ff783613f61565b82815260059290921b840181019181810190868411156141a257600080fd5b8286015b848110156140f35780356001600160401b038111156141c55760008081fd5b6141d38986838b0101614091565b8452509183019183016141a6565b600061018082840312156141f457600080fd5b6141fc613d85565b905081356001600160401b038082111561421557600080fd5b61422185838601614091565b8352602084013591508082111561423757600080fd5b614243858386016140fe565b6020840152604084013591508082111561425c57600080fd5b614268858386016140fe565b604084015261427a8560608601613e58565b606084015261428c8560e08601613dd8565b60808401526101208401359150808211156142a657600080fd5b6142b285838601614091565b60a08401526101408401359150808211156142cc57600080fd5b6142d885838601614091565b60c08401526101608401359150808211156142f257600080fd5b506142ff84828501614162565b60e08301525092915050565b60008060008060006080868803121561432357600080fd5b8535945060208601356001600160401b038082111561434157600080fd5b818801915088601f83011261435557600080fd5b81358181111561436457600080fd5b89602082850101111561437657600080fd5b602083019650945061438a6040890161407d565b935060608801359150808211156143a057600080fd5b506143ad888289016141e1565b9150509295509295909350565b600081518084526020808501945080840160005b838110156143f35781516001600160601b0316875295820195908201906001016143ce565b509495945050505050565b604081526000835160408084015261441960808401826143ba565b90506020850151603f1984830301606085015261443682826143ba565b925050508260208301529392505050565b6000806040838503121561445a57600080fd5b82356001600160401b038082111561447157600080fd5b908401906080828703121561448557600080fd5b9092506020840135908082111561449b57600080fd5b506144a8858286016141e1565b9150509250929050565b6000815180845260005b818110156144d8576020818501810151868301820152016144bc565b818111156144ea576000602083870101525b50601f01601f19169290920160200192915050565b6020815260006136d260208301846144b2565b60006001600160401b0383111561452b5761452b613d47565b61453e601f8401601f1916602001613da8565b905082815283838301111561455257600080fd5b828260208301376000602084830101529392505050565b600082601f83011261457a57600080fd5b6136d283833560208501614512565b6000806040838503121561459c57600080fd5b82356145a781613cfc565b915060208301356001600160401b03808211156145c357600080fd5b90840190606082870312156145d757600080fd5b6040516060810181811083821117156145f2576145f2613d47565b60405282358281111561460457600080fd5b61461088828601614569565b82525060208301356020820152604083013560408201528093505050509250929050565b60006020828403121561464657600080fd5b81356001600160401b0381111561465c57600080fd5b8201601f8101841361466d57600080fd5b61467c84823560208401614512565b949350505050565b60006020828403121561469657600080fd5b6136d28261407d565b6000602082840312156146b157600080fd5b81516136d281613cfc565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561471857600080fd5b81516136d281613f36565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60008261479e57634e487b7160e01b600052601260045260246000fd5b500690565b6000602082840312156147b557600080fd5b5051919050565b6000602082840312156147ce57600080fd5b81516001600160c01b03811681146136d257600080fd5b6000602082840312156147f757600080fd5b81516136d281614051565b634e487b7160e01b600052601160045260246000fd5b6000821982111561482b5761482b614802565b500190565b600060001982141561484457614844614802565b5060010190565b80516001600160601b038116811461387e57600080fd5b60006040828403121561487457600080fd5b61487c613d5d565b825161488781613cfc565b81526148956020840161484b565b60208201529392505050565b6000828210156148b3576148b3614802565b500390565b6000602082840312156148ca57600080fd5b815167ffffffffffffffff19811681146136d257600080fd5b6000602082840312156148f557600080fd5b6136d28261484b565b60006001600160601b038381169083168181101561491e5761491e614802565b039392505050565b63ffffffff60e01b8360e01b1681526000600482018351602080860160005b8381101561496157815185529382019390820190600101614945565b5092979650505050505050565b600063ffffffff80831681851680830382111561498d5761498d614802565b01949350505050565b6000808335601e198436030181126149ad57600080fd5b8301803591506001600160401b038211156149c757600080fd5b6020019150368190038213156149dc57600080fd5b9250929050565b6000608082360312156149f557600080fd5b604051608081016001600160401b038282108183111715614a1857614a18613d47565b81604052843583526020850135915080821115614a3457600080fd5b614a4036838701614569565b60208401526040850135915080821115614a5957600080fd5b50614a6636828601614569565b604083015250614a786060840161407d565b606082015292915050565b60006001600160601b0380831681851681830481118215151615614aa957614aa9614802565b02949350505050565b6000816000190483118215151615614acc57614acc614802565b500290565b60208082526052908201527f536572766963654d616e61676572426173652e6f6e6c7952656769737472794360408201527f6f6f7264696e61746f723a2063616c6c6572206973206e6f742074686520726560608201527133b4b9ba393c9031b7b7b93234b730ba37b960711b608082015260a00190565b60018060a01b0383168152604060208201526000825160606040840152614b7360a08401826144b2565b90506020840151606084015260408401516080840152809150509392505050565b600061ffff80831681811415614bac57614bac614802565b6001019392505050565b6000808335601e19843603018112614bcd57600080fd5b83016020810192503590506001600160401b03811115614bec57600080fd5b8036038313156149dc57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60208152813560208201526000614c3e6020840184614bb6565b60806040850152614c5360a085018284614bfb565b915050614c636040850185614bb6565b848303601f19016060860152614c7a838284614bfb565b9250505063ffffffff614c8f6060860161407d565b166080840152809150509291505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47456967656e4441536572766963654d616e616765722e636f6e6669726d426174424c535369676e6174757265436865636b65722e636865636b5369676e617475a264697066735822122063e3d600ca62aea15471176a5211a5a017a54709be1e021d8f3e442d19ddc3f364736f6c634300080c0033", + ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"__avsDirectory\",\"type\":\"address\",\"internalType\":\"contractIAVSDirectory\"},{\"name\":\"__paymentCoordinator\",\"type\":\"address\",\"internalType\":\"contractIPaymentCoordinator\"},{\"name\":\"__registryCoordinator\",\"type\":\"address\",\"internalType\":\"contractIRegistryCoordinator\"},{\"name\":\"__stakeRegistry\",\"type\":\"address\",\"internalType\":\"contractIStakeRegistry\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"BLOCK_STALE_MEASURE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"STORE_DURATION_BLOCKS\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"THRESHOLD_DENOMINATOR\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"avsDirectory\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"batchId\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"batchIdToBatchMetadataHash\",\"inputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"blsApkRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIBLSApkRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"checkSignatures\",\"inputs\":[{\"name\":\"msgHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"referenceBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"params\",\"type\":\"tuple\",\"internalType\":\"structIBLSSignatureChecker.NonSignerStakesAndSignature\",\"components\":[{\"name\":\"nonSignerQuorumBitmapIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"nonSignerPubkeys\",\"type\":\"tuple[]\",\"internalType\":\"structBN254.G1Point[]\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"quorumApks\",\"type\":\"tuple[]\",\"internalType\":\"structBN254.G1Point[]\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apkG2\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"sigma\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"quorumApkIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"totalStakeIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"nonSignerStakeIndices\",\"type\":\"uint32[][]\",\"internalType\":\"uint32[][]\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIBLSSignatureChecker.QuorumStakeTotals\",\"components\":[{\"name\":\"signedStakeForQuorum\",\"type\":\"uint96[]\",\"internalType\":\"uint96[]\"},{\"name\":\"totalStakeForQuorum\",\"type\":\"uint96[]\",\"internalType\":\"uint96[]\"}]},{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"confirmBatch\",\"inputs\":[{\"name\":\"batchHeader\",\"type\":\"tuple\",\"internalType\":\"structIEigenDAServiceManager.BatchHeader\",\"components\":[{\"name\":\"blobHeadersRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"signedStakeForQuorums\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"referenceBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"nonSignerStakesAndSignature\",\"type\":\"tuple\",\"internalType\":\"structIBLSSignatureChecker.NonSignerStakesAndSignature\",\"components\":[{\"name\":\"nonSignerQuorumBitmapIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"nonSignerPubkeys\",\"type\":\"tuple[]\",\"internalType\":\"structBN254.G1Point[]\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"quorumApks\",\"type\":\"tuple[]\",\"internalType\":\"structBN254.G1Point[]\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apkG2\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"sigma\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"quorumApkIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"totalStakeIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"nonSignerStakeIndices\",\"type\":\"uint32[][]\",\"internalType\":\"uint32[][]\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"delegation\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIDelegationManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"deregisterOperatorFromAVS\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getOperatorRestakedStrategies\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getRestakeableStrategies\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"_pauserRegistry\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"},{\"name\":\"_initialPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_initialOwner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_batchConfirmers\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isBatchConfirmer\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"latestServeUntilBlock\",\"inputs\":[{\"name\":\"referenceBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"pauseAll\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pauserRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"payForRange\",\"inputs\":[{\"name\":\"rangePayments\",\"type\":\"tuple[]\",\"internalType\":\"structIPaymentCoordinator.RangePayment[]\",\"components\":[{\"name\":\"strategiesAndMultipliers\",\"type\":\"tuple[]\",\"internalType\":\"structIPaymentCoordinator.StrategyAndMultiplier[]\",\"components\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"multiplier\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"duration\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"quorumAdversaryThresholdPercentages\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"quorumConfirmationThresholdPercentages\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"quorumNumbersRequired\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"registerOperatorToAVS\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSignature\",\"type\":\"tuple\",\"internalType\":\"structISignatureUtils.SignatureWithSaltAndExpiry\",\"components\":[{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"registryCoordinator\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIRegistryCoordinator\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setBatchConfirmer\",\"inputs\":[{\"name\":\"_batchConfirmer\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setPauserRegistry\",\"inputs\":[{\"name\":\"newPauserRegistry\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setStaleStakesForbidden\",\"inputs\":[{\"name\":\"value\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"stakeRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStakeRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"staleStakesForbidden\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"taskNumber\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"trySignatureAndApkVerification\",\"inputs\":[{\"name\":\"msgHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"apk\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apkG2\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"sigma\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"outputs\":[{\"name\":\"pairingSuccessful\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"siganatureIsValid\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"unpause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateAVSMetadataURI\",\"inputs\":[{\"name\":\"_metadataURI\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"BatchConfirmed\",\"inputs\":[{\"name\":\"batchHeaderHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"batchId\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"BatchConfirmerStatusChanged\",\"inputs\":[{\"name\":\"batchConfirmer\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"status\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"PauserRegistrySet\",\"inputs\":[{\"name\":\"pauserRegistry\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIPauserRegistry\"},{\"name\":\"newPauserRegistry\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIPauserRegistry\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StaleStakesForbiddenUpdate\",\"inputs\":[{\"name\":\"value\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false}]", + Bin: "0x6101806040523480156200001257600080fd5b5060405162005636380380620056368339810160408190526200003591620002f2565b6001600160a01b0380851660805280841660a05280831660c052811660e05281848482846200006362000217565b50505050806001600160a01b0316610100816001600160a01b031681525050806001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000e791906200035a565b6001600160a01b0316610120816001600160a01b031681525050806001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000140573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200016691906200035a565b6001600160a01b0316610140816001600160a01b031681525050610120516001600160a01b031663df5cf7236040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e891906200035a565b6001600160a01b0316610160525060c9805460ff191660011790556200020d62000217565b5050505062000381565b603254610100900460ff1615620002845760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60325460ff9081161015620002d7576032805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b0381168114620002ef57600080fd5b50565b600080600080608085870312156200030957600080fd5b84516200031681620002d9565b60208601519094506200032981620002d9565b60408601519093506200033c81620002d9565b60608601519092506200034f81620002d9565b939692955090935050565b6000602082840312156200036d57600080fd5b81516200037a81620002d9565b9392505050565b60805160a05160c05160e051610100516101205161014051610160516151ae62000488600039600081816105530152611b6e0152600081816103690152611d500152600081816103bb01528181611f2601526120e8015260008181610408015281816110ec01528181611839015281816119d10152611c0b015260008181610e1501528181610f700152818161100701528181612bbb01528181612d3e0152612ddd015260008181610c4001528181610ccf01528181610d4f01528181612954015281816129ea01528181612af90152612c99015260008181610ad00152610bae0152600081816103df015281816129a801528181612a460152612abe01526151ae6000f3fe608060405234801561001057600080fd5b506004361061023d5760003560e01c806372d18e8d1161013b578063bafa9107116100b8578063eccbbfc91161007c578063eccbbfc9146105ad578063ef024458146105cd578063f1220983146105d5578063f2fde38b146105e8578063fabc1cbc146105fb57600080fd5b8063bafa91071461052e578063df5cf7231461054e578063e15234ff14610575578063e481af9d14610592578063eaefd27d1461059a57600080fd5b80639926ee7d116100ff5780639926ee7d146104c5578063a364f4da146104d8578063a5b7890a146104eb578063a98fb3551461050e578063b98d09081461052157600080fd5b806372d18e8d146104535780637794965a146104615780638687feae14610474578063886f1195146104a15780638da5cb5b146104b457600080fd5b80635ac86ab7116101c9578063683048351161018d57806368304835146103b65780636b3aa72e146103dd5780636d14a987146104035780636efb46361461042a578063715018a61461044b57600080fd5b80635ac86ab71461031f5780635c975abb146103525780635df45946146103645780635e033476146103a35780635e8b3f2d146103ad57600080fd5b806333cfb7b71161021057806333cfb7b7146102ac578063416c7e5e146102cc578063468027d4146102df5780634972134a146102f2578063595c6a671461031757600080fd5b806310d67a2f14610242578063136439dd14610257578063171f1d5b1461026a5780631b44551614610299575b600080fd5b610255610250366004613f81565b61060e565b005b610255610265366004613f9e565b6106ca565b61027d610278366004614108565b610809565b6040805192151583529015156020830152015b60405180910390f35b6102556102a7366004614159565b610993565b6102bf6102ba366004613f81565b610c1b565b60405161029091906141cd565b6102556102da366004614228565b6110ea565b6102556102ed366004614268565b611260565b6000546103029063ffffffff1681565b60405163ffffffff9091168152602001610290565b6102556113bf565b61034261032d366004614344565b60fc54600160ff9092169190911b9081161490565b6040519015158152602001610290565b60fc545b604051908152602001610290565b61038b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610290565b610302620189c081565b61030261012c81565b61038b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000061038b565b61038b7f000000000000000000000000000000000000000000000000000000000000000081565b61043d6104383660046145ef565b611486565b6040516102909291906146e2565b61025561239d565b60005463ffffffff16610302565b61025561046f36600461472b565b6123b1565b610494604051806040016040528060018152602001602160f81b81525081565b60405161029091906147e3565b60fb5461038b906001600160a01b031681565b6065546001600160a01b031661038b565b6102556104d336600461486d565b612949565b6102556104e6366004613f81565b6129df565b6103426104f9366004613f81565b60026020526000908152604090205460ff1681565b61025561051c366004614918565b612a9f565b60c9546103429060ff1681565b610494604051806040016040528060018152602001603760f81b81525081565b61038b7f000000000000000000000000000000000000000000000000000000000000000081565b610494604051806040016040528060018152602001600081525081565b6102bf612af3565b6103026105a8366004614968565b612ebc565b6103566105bb366004614968565b60016020526000908152604090205481565b610356606481565b6102556105e3366004613f81565b612ede565b6102556105f6366004613f81565b612eef565b610255610609366004613f9e565b612f65565b60fb60009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610661573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106859190614983565b6001600160a01b0316336001600160a01b0316146106be5760405162461bcd60e51b81526004016106b5906149a0565b60405180910390fd5b6106c7816130c1565b50565b60fb5460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610712573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073691906149ea565b6107525760405162461bcd60e51b81526004016106b590614a07565b60fc54818116146107cb5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c697479000000000000000060648201526084016106b5565b60fc81905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018787600001518860200151886000015160006002811061085157610851614a4f565b60200201518951600160200201518a6020015160006002811061087657610876614a4f565b60200201518b6020015160016002811061089257610892614a4f565b602090810291909101518c518d8301516040516108ef9a99989796959401988952602089019790975260408801959095526060870193909352608086019190915260a085015260c084015260e08301526101008201526101200190565b6040516020818303038152906040528051906020012060001c6109129190614a65565b905061098561092b61092488846131b8565b869061324f565b6109336132e3565b61097b61096c85610966604080518082018252600080825260209182015281518083019092526001825260029082015290565b906131b8565b6109758c6133a3565b9061324f565b886201d4c0613433565b909890975095505050505050565b61099b613657565b60005b81811015610b96578282828181106109b8576109b8614a4f565b90506020028101906109ca9190614a87565b6109db906040810190602001613f81565b6001600160a01b03166323b872dd33308686868181106109fd576109fd614a4f565b9050602002810190610a0f9190614a87565b604080516001600160e01b031960e087901b1681526001600160a01b039485166004820152939092166024840152013560448201526064016020604051808303816000875af1158015610a66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8a91906149ea565b50828282818110610a9d57610a9d614a4f565b9050602002810190610aaf9190614a87565b610ac0906040810190602001613f81565b6001600160a01b031663095ea7b37f0000000000000000000000000000000000000000000000000000000000000000858585818110610b0157610b01614a4f565b9050602002810190610b139190614a87565b604080516001600160e01b031960e086901b1681526001600160a01b039093166004840152013560248201526044016020604051808303816000875af1158015610b61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8591906149ea565b50610b8f81614ac8565b905061099e565b50604051630da22a8b60e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690631b44551690610be59085908590600401614b53565b600060405180830381600087803b158015610bff57600080fd5b505af1158015610c13573d6000803e3d6000fd5b505050505050565b6040516309aa152760e11b81526001600160a01b0382811660048301526060916000917f000000000000000000000000000000000000000000000000000000000000000016906313542a4e90602401602060405180830381865afa158015610c87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cab9190614c60565b60405163871ef04960e01b8152600481018290529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063871ef04990602401602060405180830381865afa158015610d16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3a9190614c79565b90506001600160c01b0381161580610dd457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dcf9190614ca2565b60ff16155b15610df057505060408051600081526020810190915292915050565b6000610e04826001600160c01b03166136b1565b90506000805b8251811015610eda577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633ca5a5f5848381518110610e5457610e54614a4f565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015610e98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebc9190614c60565b610ec69083614cbf565b915080610ed281614ac8565b915050610e0a565b506000816001600160401b03811115610ef557610ef5613fb7565b604051908082528060200260200182016040528015610f1e578160200160208202803683370190505b5090506000805b84518110156110dd576000858281518110610f4257610f42614a4f565b0160200151604051633ca5a5f560e01b815260f89190911c6004820181905291506000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633ca5a5f590602401602060405180830381865afa158015610fb7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fdb9190614c60565b905060005b818110156110c7576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa158015611055573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110799190614cd7565b6000015186868151811061108f5761108f614a4f565b6001600160a01b0390921660209283029190910190910152846110b181614ac8565b95505080806110bf90614ac8565b915050610fe0565b50505080806110d590614ac8565b915050610f25565b5090979650505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611148573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116c9190614983565b6001600160a01b0316336001600160a01b0316146112185760405162461bcd60e51b815260206004820152605c60248201527f424c535369676e6174757265436865636b65722e6f6e6c79436f6f7264696e6160448201527f746f724f776e65723a2063616c6c6572206973206e6f7420746865206f776e6560648201527f72206f6620746865207265676973747279436f6f7264696e61746f7200000000608482015260a4016106b5565b60c9805460ff19168215159081179091556040519081527f40e4ed880a29e0f6ddce307457fb75cddf4feef7d3ecb0301bfdf4976a0e2dfc906020015b60405180910390a150565b603254610100900460ff16158080156112805750603254600160ff909116105b8061129a5750303b15801561129a575060325460ff166001145b6112fd5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106b5565b6032805460ff191660011790558015611320576032805461ff0019166101001790555b61132a8585613773565b6113338361385d565b60005b82518110156113715761136183828151811061135457611354614a4f565b60200260200101516138af565b61136a81614ac8565b9050611336565b5080156113b8576032805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60fb5460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015611407573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142b91906149ea565b6114475760405162461bcd60e51b81526004016106b590614a07565b60001960fc81905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60408051808201909152606080825260208201526000846114fd5760405162461bcd60e51b8152602060048201526037602482015260008051602061515983398151915260448201527f7265733a20656d7074792071756f72756d20696e70757400000000000000000060648201526084016106b5565b60408301515185148015611515575060a08301515185145b8015611525575060c08301515185145b8015611535575060e08301515185145b61159f5760405162461bcd60e51b8152602060048201526041602482015260008051602061515983398151915260448201527f7265733a20696e7075742071756f72756d206c656e677468206d69736d6174636064820152600d60fb1b608482015260a4016106b5565b825151602084015151146116175760405162461bcd60e51b815260206004820152604460248201819052600080516020615159833981519152908201527f7265733a20696e707574206e6f6e7369676e6572206c656e677468206d69736d6064820152630c2e8c6d60e31b608482015260a4016106b5565b4363ffffffff168463ffffffff16106116865760405162461bcd60e51b815260206004820152603c602482015260008051602061515983398151915260448201527f7265733a20696e76616c6964207265666572656e636520626c6f636b0000000060648201526084016106b5565b6040805180820182526000808252602080830191909152825180840190935260608084529083015290866001600160401b038111156116c7576116c7613fb7565b6040519080825280602002602001820160405280156116f0578160200160208202803683370190505b506020820152866001600160401b0381111561170e5761170e613fb7565b604051908082528060200260200182016040528015611737578160200160208202803683370190505b50815260408051808201909152606080825260208201528560200151516001600160401b0381111561176b5761176b613fb7565b604051908082528060200260200182016040528015611794578160200160208202803683370190505b5081526020860151516001600160401b038111156117b4576117b4613fb7565b6040519080825280602002602001820160405280156117dd578160200160208202803683370190505b50816020018190525060006118af8a8a8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051639aa1653d60e01b815290516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169350639aa1653d925060048083019260209291908290030181865afa158015611886573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118aa9190614ca2565b613912565b905060005b876020015151811015611b4a576118f9886020015182815181106118da576118da614a4f565b6020026020010151805160009081526020918201519091526040902090565b8360200151828151811061190f5761190f614a4f565b602090810291909101015280156119cf576020830151611930600183614d18565b8151811061194057611940614a4f565b602002602001015160001c8360200151828151811061196157611961614a4f565b602002602001015160001c116119cf576040805162461bcd60e51b815260206004820152602481019190915260008051602061515983398151915260448201527f7265733a206e6f6e5369676e65725075626b657973206e6f7420736f7274656460648201526084016106b5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166304ec635184602001518381518110611a1457611a14614a4f565b60200260200101518b8b600001518581518110611a3357611a33614a4f565b60200260200101516040518463ffffffff1660e01b8152600401611a709392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015611a8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab19190614c79565b6001600160c01b031683600001518281518110611ad057611ad0614a4f565b602002602001018181525050611b36610924611b0a8486600001518581518110611afc57611afc614a4f565b6020026020010151166139a3565b8a602001518481518110611b2057611b20614a4f565b60200260200101516139ce90919063ffffffff16565b945080611b4281614ac8565b9150506118b4565b5050611b5583613ab2565b60c95490935060ff16600081611b6c576000611bee565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c448feb86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bee9190614c60565b905060005b8a81101561226c578215611d4e578963ffffffff16827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663249a0c428f8f86818110611c4a57611c4a614a4f565b60405160e085901b6001600160e01b031916815292013560f81c600483015250602401602060405180830381865afa158015611c8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cae9190614c60565b611cb89190614cbf565b11611d4e5760405162461bcd60e51b8152602060048201526066602482015260008051602061515983398151915260448201527f7265733a205374616b6552656769737472792075706461746573206d7573742060648201527f62652077697468696e207769746864726177616c44656c6179426c6f636b732060848201526577696e646f7760d01b60a482015260c4016106b5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166368bccaac8d8d84818110611d8f57611d8f614a4f565b9050013560f81c60f81b60f81c8c8c60a001518581518110611db357611db3614a4f565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611e0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e339190614d2f565b6001600160401b031916611e568a6040015183815181106118da576118da614a4f565b67ffffffffffffffff191614611ef25760405162461bcd60e51b8152602060048201526061602482015260008051602061515983398151915260448201527f7265733a2071756f72756d41706b206861736820696e2073746f72616765206460648201527f6f6573206e6f74206d617463682070726f76696465642071756f72756d2061706084820152606b60f81b60a482015260c4016106b5565b611f2289604001518281518110611f0b57611f0b614a4f565b60200260200101518761324f90919063ffffffff16565b95507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c8294c568d8d84818110611f6557611f65614a4f565b9050013560f81c60f81b60f81c8c8c60c001518581518110611f8957611f89614a4f565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611fe5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120099190614d5a565b8560200151828151811061201f5761201f614a4f565b6001600160601b0390921660209283029190910182015285015180518290811061204b5761204b614a4f565b60200260200101518560000151828151811061206957612069614a4f565b60200260200101906001600160601b031690816001600160601b0316815250506000805b8a6020015151811015612257576120e1866000015182815181106120b3576120b3614a4f565b60200260200101518f8f868181106120cd576120cd614a4f565b600192013560f81c9290921c811614919050565b15612245577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f2be94ae8f8f8681811061212757612127614a4f565b9050013560f81c60f81b60f81c8e8960200151858151811061214b5761214b614a4f565b60200260200101518f60e00151888151811061216957612169614a4f565b6020026020010151878151811061218257612182614a4f565b60209081029190910101516040516001600160e01b031960e087901b16815260ff909416600485015263ffffffff92831660248501526044840191909152166064820152608401602060405180830381865afa1580156121e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061220a9190614d5a565b875180518590811061221e5761221e614a4f565b602002602001018181516122329190614d77565b6001600160601b03169052506001909101905b8061224f81614ac8565b91505061208d565b5050808061226490614ac8565b915050611bf3565b5050506000806122868c868a606001518b60800151610809565b91509150816122f75760405162461bcd60e51b8152602060048201526043602482015260008051602061515983398151915260448201527f7265733a2070616972696e6720707265636f6d70696c652063616c6c206661696064820152621b195960ea1b608482015260a4016106b5565b806123585760405162461bcd60e51b8152602060048201526039602482015260008051602061515983398151915260448201527f7265733a207369676e617475726520697320696e76616c69640000000000000060648201526084016106b5565b50506000878260200151604051602001612373929190614d9f565b60408051808303601f190181529190528051602090910120929b929a509198505050505050505050565b6123a5613657565b6123af600061385d565b565b60fc546000906001908116141561240a5760405162461bcd60e51b815260206004820152601960248201527f5061757361626c653a20696e646578206973207061757365640000000000000060448201526064016106b5565b3360009081526002602052604090205460ff1661247e5760405162461bcd60e51b815260206004820152602c60248201527f6f6e6c794261746368436f6e6669726d65723a206e6f742066726f6d2062617460448201526b31b41031b7b73334b936b2b960a11b60648201526084016106b5565b3233146124fb5760405162461bcd60e51b8152602060048201526051602482015260008051602061513983398151915260448201527f63683a2068656164657220616e64206e6f6e7369676e65722064617461206d75606482015270737420626520696e2063616c6c6461746160781b608482015260a4016106b5565b4361250c6080850160608601614968565b63ffffffff161061258b5760405162461bcd60e51b815260206004820152604f602482015260008051602061513983398151915260448201527f63683a20737065636966696564207265666572656e6365426c6f636b4e756d6260648201526e657220697320696e2066757475726560881b608482015260a4016106b5565b63ffffffff431661012c6125a56080860160608701614968565b6125af9190614de7565b63ffffffff1610156126355760405162461bcd60e51b8152602060048201526055602482015260008051602061513983398151915260448201527f63683a20737065636966696564207265666572656e6365426c6f636b4e756d62606482015274195c881a5cc81d1bdbc819985c881a5b881c185cdd605a1b608482015260a4016106b5565b6126426040840184614e0f565b90506126516020850185614e0f565b9050146126e95760405162461bcd60e51b8152602060048201526066602482015260008051602061513983398151915260448201527f63683a2071756f72756d4e756d6265727320616e64207369676e65645374616b60648201527f65466f7251756f72756d73206d757374206265206f66207468652073616d65206084820152650d8cadccee8d60d31b60a482015260c4016106b5565b60006126fc6126f785614e5c565b613b4d565b9050600080612728836127126020890189614e0f565b61272260808b0160608c01614968565b89611486565b9150915060005b61273c6040880188614e0f565b905081101561287e576127526040880188614e0f565b8281811061276257612762614a4f565b9050013560f81c60f81b60f81c60ff168360200151828151811061278857612788614a4f565b602002602001015161279a9190614efc565b6001600160601b03166064846000015183815181106127bb576127bb614a4f565b60200260200101516001600160601b03166127d69190614f2b565b101561286c5760405162461bcd60e51b81526020600482015260646024820181905260008051602061513983398151915260448301527f63683a207369676e61746f7269657320646f206e6f74206f776e206174206c65908201527f617374207468726573686f6c642070657263656e74616765206f6620612071756084820152636f72756d60e01b60a482015260c4016106b5565b8061287681614ac8565b91505061272f565b506000805463ffffffff169061289388613bc8565b6040805160208082018490528183018790524360e01b6001600160e01b0319166060830152825160448184030181526064830180855281519183019190912063ffffffff881660008181526001909452928590205552905191925086917fc75557c4ad49697e231449688be13ef11cb6be8ed0d18819d8dde074a5a16f8a9181900360840190a2612925826001614de7565b6000805463ffffffff191663ffffffff929092169190911790555050505050505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146129915760405162461bcd60e51b81526004016106b590614f4a565b604051639926ee7d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639926ee7d90610be59085908590600401614fc2565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614612a275760405162461bcd60e51b81526004016106b590614f4a565b6040516351b27a6d60e11b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a364f4da906024015b600060405180830381600087803b158015612a8b57600080fd5b505af11580156113b8573d6000803e3d6000fd5b612aa7613657565b60405163a98fb35560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a98fb35590612a719084906004016147e3565b606060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b799190614ca2565b60ff16905080612b9757505060408051600081526020810190915290565b6000805b82811015612c4c57604051633ca5a5f560e01b815260ff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612c0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c2e9190614c60565b612c389083614cbf565b915080612c4481614ac8565b915050612b9b565b506000816001600160401b03811115612c6757612c67613fb7565b604051908082528060200260200182016040528015612c90578160200160208202803683370190505b5090506000805b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612cf5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d199190614ca2565b60ff16811015612eb257604051633ca5a5f560e01b815260ff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612d8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612db19190614c60565b905060005b81811015612e9d576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa158015612e2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e4f9190614cd7565b60000151858581518110612e6557612e65614a4f565b6001600160a01b039092166020928302919091019091015283612e8781614ac8565b9450508080612e9590614ac8565b915050612db6565b50508080612eaa90614ac8565b915050612c97565b5090949350505050565b600061012c612ece620189c084614de7565b612ed89190614de7565b92915050565b612ee6613657565b6106c7816138af565b612ef7613657565b6001600160a01b038116612f5c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106b5565b6106c78161385d565b60fb60009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fdc9190614983565b6001600160a01b0316336001600160a01b03161461300c5760405162461bcd60e51b81526004016106b5906149a0565b60fc5419811960fc5419161461308a5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c697479000000000000000060648201526084016106b5565b60fc81905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016107fe565b6001600160a01b03811661314f5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a4016106b5565b60fb54604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a160fb80546001600160a01b0319166001600160a01b0392909216919091179055565b60408051808201909152600080825260208201526131d4613e92565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa905080801561320757613209565bfe5b50806132475760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b60448201526064016106b5565b505092915050565b604080518082019091526000808252602082015261326b613eb0565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa90508080156132075750806132475760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b60448201526064016106b5565b6132eb613ece565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b6040805180820190915260008082526020820152600080806133d360008051602061511983398151915286614a65565b90505b6133df81613bdb565b9093509150600080516020615119833981519152828309831415613419576040805180820190915290815260208101919091529392505050565b6000805160206151198339815191526001820890506133d6565b604080518082018252868152602080820186905282518084019093528683528201849052600091829190613465613ef3565b60005b600281101561362a57600061347e826006614f2b565b905084826002811061349257613492614a4f565b602002015151836134a4836000614cbf565b600c81106134b4576134b4614a4f565b60200201528482600281106134cb576134cb614a4f565b602002015160200151838260016134e29190614cbf565b600c81106134f2576134f2614a4f565b602002015283826002811061350957613509614a4f565b602002015151518361351c836002614cbf565b600c811061352c5761352c614a4f565b602002015283826002811061354357613543614a4f565b602002015151600160200201518361355c836003614cbf565b600c811061356c5761356c614a4f565b602002015283826002811061358357613583614a4f565b60200201516020015160006002811061359e5761359e614a4f565b6020020151836135af836004614cbf565b600c81106135bf576135bf614a4f565b60200201528382600281106135d6576135d6614a4f565b6020020151602001516001600281106135f1576135f1614a4f565b602002015183613602836005614cbf565b600c811061361257613612614a4f565b6020020152508061362281614ac8565b915050613468565b50613633613f12565b60006020826101808560088cfa9151919c9115159b50909950505050505050505050565b6065546001600160a01b031633146123af5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106b5565b60606000806136bf846139a3565b61ffff166001600160401b038111156136da576136da613fb7565b6040519080825280601f01601f191660200182016040528015613704576020820181803683370190505b5090506000805b82518210801561371c575061010081105b15612eb2576001811b935085841615613763578060f81b83838151811061374557613745614a4f565b60200101906001600160f81b031916908160001a9053508160010191505b61376c81614ac8565b905061370b565b60fb546001600160a01b031615801561379457506001600160a01b03821615155b6138165760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a4016106b5565b60fc81905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2613859826130c1565b5050565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038116600081815260026020908152604091829020805460ff8082161560ff1990921682179092558351948552161515908301527f5c3265f5fb462ef4930fe47beaa183647c97f19ba545b761f41bc8cd4621d4149101611255565b60008061391e84613c5d565b9050808360ff166001901b1161399c5760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c75650060648201526084016106b5565b9392505050565b6000805b8215612ed8576139b8600184614d18565b90921691806139c68161500d565b9150506139a7565b60408051808201909152600080825260208201526102008261ffff1610613a2a5760405162461bcd60e51b815260206004820152601060248201526f7363616c61722d746f6f2d6c6172676560801b60448201526064016106b5565b8161ffff1660011415613a3e575081612ed8565b6040805180820190915260008082526020820181905284906001905b8161ffff168661ffff1610613aa757600161ffff871660ff83161c81161415613a8a57613a87848461324f565b93505b613a94838461324f565b92506201fffe600192831b169101613a5a565b509195945050505050565b60408051808201909152600080825260208201528151158015613ad757506020820151155b15613af5575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020016000805160206151198339815191528460200151613b289190614a65565b613b4090600080516020615119833981519152614d18565b905292915050565b919050565b6000613b8a82604080518082019091526000808252602082015250604080518082019091528151815260609091015163ffffffff16602082015290565b6040805182516020808301919091529092015163ffffffff16908201526060015b604051602081830303815290604052805190602001209050919050565b600081604051602001613bab919061509d565b60008080600080516020615119833981519152600360008051602061511983398151915286600080516020615119833981519152888909090890506000613c51827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52600080516020615119833981519152613dea565b91959194509092505050565b600061010082511115613ce65760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a4016106b5565b8151613cf457506000919050565b60008083600081518110613d0a57613d0a614a4f565b0160200151600160f89190911c81901b92505b8451811015613de157848181518110613d3857613d38614a4f565b0160200151600160f89190911c1b9150828211613dcd5760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a4016106b5565b91811791613dda81614ac8565b9050613d1d565b50909392505050565b600080613df5613f12565b613dfd613f30565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa9250828015613207575082613e875760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c75726500000000000060448201526064016106b5565b505195945050505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b6040518060400160405280613ee1613f4e565b8152602001613eee613f4e565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b6001600160a01b03811681146106c757600080fd5b600060208284031215613f9357600080fd5b813561399c81613f6c565b600060208284031215613fb057600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715613fef57613fef613fb7565b60405290565b60405161010081016001600160401b0381118282101715613fef57613fef613fb7565b604051601f8201601f191681016001600160401b038111828210171561404057614040613fb7565b604052919050565b60006040828403121561405a57600080fd5b614062613fcd565b9050813581526020820135602082015292915050565b600082601f83011261408957600080fd5b614091613fcd565b8060408401858111156140a357600080fd5b845b818110156140bd5780358452602093840193016140a5565b509095945050505050565b6000608082840312156140da57600080fd5b6140e2613fcd565b90506140ee8383614078565b81526140fd8360408401614078565b602082015292915050565b600080600080610120858703121561411f57600080fd5b843593506141308660208701614048565b925061413f86606087016140c8565b915061414e8660e08701614048565b905092959194509250565b6000806020838503121561416c57600080fd5b82356001600160401b038082111561418357600080fd5b818501915085601f83011261419757600080fd5b8135818111156141a657600080fd5b8660208260051b85010111156141bb57600080fd5b60209290920196919550909350505050565b6020808252825182820181905260009190848201906040850190845b8181101561420e5783516001600160a01b0316835292840192918401916001016141e9565b50909695505050505050565b80151581146106c757600080fd5b60006020828403121561423a57600080fd5b813561399c8161421a565b60006001600160401b0382111561425e5761425e613fb7565b5060051b60200190565b6000806000806080858703121561427e57600080fd5b843561428981613f6c565b9350602085810135935060408601356142a181613f6c565b925060608601356001600160401b038111156142bc57600080fd5b8601601f810188136142cd57600080fd5b80356142e06142db82614245565b614018565b81815260059190911b8201830190838101908a8311156142ff57600080fd5b928401925b8284101561432657833561431781613f6c565b82529284019290840190614304565b979a9699509497505050505050565b60ff811681146106c757600080fd5b60006020828403121561435657600080fd5b813561399c81614335565b803563ffffffff81168114613b4857600080fd5b600082601f83011261438657600080fd5b813560206143966142db83614245565b82815260059290921b840181019181810190868411156143b557600080fd5b8286015b848110156143d7576143ca81614361565b83529183019183016143b9565b509695505050505050565b600082601f8301126143f357600080fd5b813560206144036142db83614245565b82815260069290921b8401810191818101908684111561442257600080fd5b8286015b848110156143d7576144388882614048565b835291830191604001614426565b600082601f83011261445757600080fd5b813560206144676142db83614245565b82815260059290921b8401810191818101908684111561448657600080fd5b8286015b848110156143d75780356001600160401b038111156144a95760008081fd5b6144b78986838b0101614375565b84525091830191830161448a565b600061018082840312156144d857600080fd5b6144e0613ff5565b905081356001600160401b03808211156144f957600080fd5b61450585838601614375565b8352602084013591508082111561451b57600080fd5b614527858386016143e2565b6020840152604084013591508082111561454057600080fd5b61454c858386016143e2565b604084015261455e85606086016140c8565b60608401526145708560e08601614048565b608084015261012084013591508082111561458a57600080fd5b61459685838601614375565b60a08401526101408401359150808211156145b057600080fd5b6145bc85838601614375565b60c08401526101608401359150808211156145d657600080fd5b506145e384828501614446565b60e08301525092915050565b60008060008060006080868803121561460757600080fd5b8535945060208601356001600160401b038082111561462557600080fd5b818801915088601f83011261463957600080fd5b81358181111561464857600080fd5b89602082850101111561465a57600080fd5b602083019650945061466e60408901614361565b9350606088013591508082111561468457600080fd5b50614691888289016144c5565b9150509295509295909350565b600081518084526020808501945080840160005b838110156146d75781516001600160601b0316875295820195908201906001016146b2565b509495945050505050565b60408152600083516040808401526146fd608084018261469e565b90506020850151603f1984830301606085015261471a828261469e565b925050508260208301529392505050565b6000806040838503121561473e57600080fd5b82356001600160401b038082111561475557600080fd5b908401906080828703121561476957600080fd5b9092506020840135908082111561477f57600080fd5b5061478c858286016144c5565b9150509250929050565b6000815180845260005b818110156147bc576020818501810151868301820152016147a0565b818111156147ce576000602083870101525b50601f01601f19169290920160200192915050565b60208152600061399c6020830184614796565b60006001600160401b0383111561480f5761480f613fb7565b614822601f8401601f1916602001614018565b905082815283838301111561483657600080fd5b828260208301376000602084830101529392505050565b600082601f83011261485e57600080fd5b61399c838335602085016147f6565b6000806040838503121561488057600080fd5b823561488b81613f6c565b915060208301356001600160401b03808211156148a757600080fd5b90840190606082870312156148bb57600080fd5b6040516060810181811083821117156148d6576148d6613fb7565b6040528235828111156148e857600080fd5b6148f48882860161484d565b82525060208301356020820152604083013560408201528093505050509250929050565b60006020828403121561492a57600080fd5b81356001600160401b0381111561494057600080fd5b8201601f8101841361495157600080fd5b614960848235602084016147f6565b949350505050565b60006020828403121561497a57600080fd5b61399c82614361565b60006020828403121561499557600080fd5b815161399c81613f6c565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b6000602082840312156149fc57600080fd5b815161399c8161421a565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b600082614a8257634e487b7160e01b600052601260045260246000fd5b500690565b60008235609e19833603018112614a9d57600080fd5b9190910192915050565b8035613b4881613f6c565b634e487b7160e01b600052601160045260246000fd5b6000600019821415614adc57614adc614ab2565b5060010190565b6001600160601b03811681146106c757600080fd5b8183526000602080850194508260005b858110156146d7578135614b1b81613f6c565b6001600160a01b0316875281830135614b3381614ae3565b6001600160601b0316878401526040968701969190910190600101614b08565b60208082528181018390526000906040808401600586901b8501820187855b88811015614c5257878303603f190184528135368b9003609e19018112614b9857600080fd5b8a0160a0813536839003601e19018112614bb157600080fd5b820180356001600160401b03811115614bc957600080fd5b8060061b3603841315614bdb57600080fd5b828752614bed838801828c8501614af8565b92505050614bfc888301614aa7565b6001600160a01b03168886015281870135878601526060614c1e818401614361565b63ffffffff16908601526080614c35838201614361565b63ffffffff16950194909452509285019290850190600101614b72565b509098975050505050505050565b600060208284031215614c7257600080fd5b5051919050565b600060208284031215614c8b57600080fd5b81516001600160c01b038116811461399c57600080fd5b600060208284031215614cb457600080fd5b815161399c81614335565b60008219821115614cd257614cd2614ab2565b500190565b600060408284031215614ce957600080fd5b614cf1613fcd565b8251614cfc81613f6c565b81526020830151614d0c81614ae3565b60208201529392505050565b600082821015614d2a57614d2a614ab2565b500390565b600060208284031215614d4157600080fd5b815167ffffffffffffffff198116811461399c57600080fd5b600060208284031215614d6c57600080fd5b815161399c81614ae3565b60006001600160601b0383811690831681811015614d9757614d97614ab2565b039392505050565b63ffffffff60e01b8360e01b1681526000600482018351602080860160005b83811015614dda57815185529382019390820190600101614dbe565b5092979650505050505050565b600063ffffffff808316818516808303821115614e0657614e06614ab2565b01949350505050565b6000808335601e19843603018112614e2657600080fd5b8301803591506001600160401b03821115614e4057600080fd5b602001915036819003821315614e5557600080fd5b9250929050565b600060808236031215614e6e57600080fd5b604051608081016001600160401b038282108183111715614e9157614e91613fb7565b81604052843583526020850135915080821115614ead57600080fd5b614eb93683870161484d565b60208401526040850135915080821115614ed257600080fd5b50614edf3682860161484d565b604083015250614ef160608401614361565b606082015292915050565b60006001600160601b0380831681851681830481118215151615614f2257614f22614ab2565b02949350505050565b6000816000190483118215151615614f4557614f45614ab2565b500290565b60208082526052908201527f536572766963654d616e61676572426173652e6f6e6c7952656769737472794360408201527f6f6f7264696e61746f723a2063616c6c6572206973206e6f742074686520726560608201527133b4b9ba393c9031b7b7b93234b730ba37b960711b608082015260a00190565b60018060a01b0383168152604060208201526000825160606040840152614fec60a0840182614796565b90506020840151606084015260408401516080840152809150509392505050565b600061ffff8083168181141561502557615025614ab2565b6001019392505050565b6000808335601e1984360301811261504657600080fd5b83016020810192503590506001600160401b0381111561506557600080fd5b803603831315614e5557600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081528135602082015260006150b7602084018461502f565b608060408501526150cc60a085018284615074565b9150506150dc604085018561502f565b848303601f190160608601526150f3838284615074565b9250505063ffffffff61510860608601614361565b166080840152809150509291505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47456967656e4441536572766963654d616e616765722e636f6e6669726d426174424c535369676e6174757265436865636b65722e636865636b5369676e617475a26469706673582212201e9bb99537c5308a3be470eb114f1be075d33e5ec43b34e943fef3f4fc99779864736f6c634300080c0033", } // ContractEigenDAServiceManagerABI is the input ABI used to generate the binding from. @@ -89,7 +104,7 @@ var ContractEigenDAServiceManagerABI = ContractEigenDAServiceManagerMetaData.ABI var ContractEigenDAServiceManagerBin = ContractEigenDAServiceManagerMetaData.Bin // DeployContractEigenDAServiceManager deploys a new Ethereum contract, binding an instance of ContractEigenDAServiceManager to it. -func DeployContractEigenDAServiceManager(auth *bind.TransactOpts, backend bind.ContractBackend, __avsDirectory common.Address, __registryCoordinator common.Address, __stakeRegistry common.Address) (common.Address, *types.Transaction, *ContractEigenDAServiceManager, error) { +func DeployContractEigenDAServiceManager(auth *bind.TransactOpts, backend bind.ContractBackend, __avsDirectory common.Address, __paymentCoordinator common.Address, __registryCoordinator common.Address, __stakeRegistry common.Address) (common.Address, *types.Transaction, *ContractEigenDAServiceManager, error) { parsed, err := ContractEigenDAServiceManagerMetaData.GetAbi() if err != nil { return common.Address{}, nil, nil, err @@ -98,7 +113,7 @@ func DeployContractEigenDAServiceManager(auth *bind.TransactOpts, backend bind.C return common.Address{}, nil, nil, errors.New("GetABI returned nil") } - address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(ContractEigenDAServiceManagerBin), backend, __avsDirectory, __registryCoordinator, __stakeRegistry) + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(ContractEigenDAServiceManagerBin), backend, __avsDirectory, __paymentCoordinator, __registryCoordinator, __stakeRegistry) if err != nil { return common.Address{}, nil, nil, err } @@ -1142,6 +1157,27 @@ func (_ContractEigenDAServiceManager *ContractEigenDAServiceManagerTransactorSes return _ContractEigenDAServiceManager.Contract.PauseAll(&_ContractEigenDAServiceManager.TransactOpts) } +// PayForRange is a paid mutator transaction binding the contract method 0x1b445516. +// +// Solidity: function payForRange(((address,uint96)[],address,uint256,uint32,uint32)[] rangePayments) returns() +func (_ContractEigenDAServiceManager *ContractEigenDAServiceManagerTransactor) PayForRange(opts *bind.TransactOpts, rangePayments []IPaymentCoordinatorRangePayment) (*types.Transaction, error) { + return _ContractEigenDAServiceManager.contract.Transact(opts, "payForRange", rangePayments) +} + +// PayForRange is a paid mutator transaction binding the contract method 0x1b445516. +// +// Solidity: function payForRange(((address,uint96)[],address,uint256,uint32,uint32)[] rangePayments) returns() +func (_ContractEigenDAServiceManager *ContractEigenDAServiceManagerSession) PayForRange(rangePayments []IPaymentCoordinatorRangePayment) (*types.Transaction, error) { + return _ContractEigenDAServiceManager.Contract.PayForRange(&_ContractEigenDAServiceManager.TransactOpts, rangePayments) +} + +// PayForRange is a paid mutator transaction binding the contract method 0x1b445516. +// +// Solidity: function payForRange(((address,uint96)[],address,uint256,uint32,uint32)[] rangePayments) returns() +func (_ContractEigenDAServiceManager *ContractEigenDAServiceManagerTransactorSession) PayForRange(rangePayments []IPaymentCoordinatorRangePayment) (*types.Transaction, error) { + return _ContractEigenDAServiceManager.Contract.PayForRange(&_ContractEigenDAServiceManager.TransactOpts, rangePayments) +} + // RegisterOperatorToAVS is a paid mutator transaction binding the contract method 0x9926ee7d. // // Solidity: function registerOperatorToAVS(address operator, (bytes,bytes32,uint256) operatorSignature) returns() diff --git a/contracts/bindings/EjectionManager/binding.go b/contracts/bindings/EjectionManager/binding.go index 60e64a38e1..d56a2f9224 100644 --- a/contracts/bindings/EjectionManager/binding.go +++ b/contracts/bindings/EjectionManager/binding.go @@ -37,8 +37,8 @@ type IEjectionManagerQuorumEjectionParams struct { // ContractEjectionManagerMetaData contains all meta data concerning the ContractEjectionManager contract. var ContractEjectionManagerMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_registryCoordinator\",\"type\":\"address\",\"internalType\":\"contractIRegistryCoordinator\"},{\"name\":\"_stakeRegistry\",\"type\":\"address\",\"internalType\":\"contractIStakeRegistry\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"amountEjectableForQuorum\",\"inputs\":[{\"name\":\"_quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"ejectOperators\",\"inputs\":[{\"name\":\"_operatorIds\",\"type\":\"bytes32[][]\",\"internalType\":\"bytes32[][]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_ejectors\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"_quorumEjectionParams\",\"type\":\"tuple[]\",\"internalType\":\"structIEjectionManager.QuorumEjectionParams[]\",\"components\":[{\"name\":\"rateLimitWindow\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"ejectableStakePercent\",\"type\":\"uint16\",\"internalType\":\"uint16\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isEjector\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"quorumEjectionParams\",\"inputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"rateLimitWindow\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"ejectableStakePercent\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"registryCoordinator\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIRegistryCoordinator\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setEjector\",\"inputs\":[{\"name\":\"_ejector\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_status\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setQuorumEjectionParams\",\"inputs\":[{\"name\":\"_quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"_quorumEjectionParams\",\"type\":\"tuple\",\"internalType\":\"structIEjectionManager.QuorumEjectionParams\",\"components\":[{\"name\":\"rateLimitWindow\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"ejectableStakePercent\",\"type\":\"uint16\",\"internalType\":\"uint16\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"stakeEjectedForQuorum\",\"inputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"timestamp\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"stakeEjected\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"stakeRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStakeRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"EjectorUpdated\",\"inputs\":[{\"name\":\"ejector\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"status\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"FailedOperatorEjection\",\"inputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"},{\"name\":\"err\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorEjected\",\"inputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"QuorumEjectionParamsSet\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"},{\"name\":\"rateLimitWindow\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"ejectableStakePercent\",\"type\":\"uint16\",\"indexed\":false,\"internalType\":\"uint16\"}],\"anonymous\":false}]", - Bin: "0x60c06040523480156200001157600080fd5b506040516200174538038062001745833981016040819052620000349162000134565b6001600160a01b03808316608052811660a0526200005162000059565b505062000173565b600054610100900460ff1615620000c65760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000119576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200013157600080fd5b50565b600080604083850312156200014857600080fd5b825162000155816200011b565b602084015190925062000168816200011b565b809150509250929050565b60805160a051611590620001b56000396000818161018d015281816103b20152610afa0152600081816101ff01528181610530015261055f01526115906000f3fe608060405234801561001057600080fd5b50600436106100ce5760003560e01c80636d14a9871161008c5780638b88a024116100665780638b88a0241461023c5780638da5cb5b1461024f578063b13f450414610260578063f2fde38b1461028157600080fd5b80636d14a987146101fa578063715018a61461022157806377d175861461022957600080fd5b8062482569146100d35780630a0593d11461012b57806310ea4f8a1461014b5780633a0b0ddd1461016057806368304835146101885780636c08a879146101c7575b600080fd5b6101076100e1366004610ed3565b60676020526000908152604090205463ffffffff811690640100000000900461ffff1682565b6040805163ffffffff909316835261ffff9091166020830152015b60405180910390f35b61013e610139366004610f60565b610294565b604051610122919061106c565b61015e6101593660046110cb565b610895565b005b61017361016e366004611109565b6108ab565b60408051928352602083019190915201610122565b6101af7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610122565b6101ea6101d5366004611133565b60656020526000908152604090205460ff1681565b6040519015158152602001610122565b6101af7f000000000000000000000000000000000000000000000000000000000000000081565b61015e6108e7565b61015e6102373660046111c3565b6108fb565b61015e61024a366004611266565b61090d565b6033546001600160a01b03166101af565b61027361026e366004610ed3565b610ab3565b604051908152602001610122565b61015e61028f366004611133565b610cb7565b3360009081526065602052604090205460609060ff16806102bf57506033546001600160a01b031633145b6103215760405162461bcd60e51b815260206004820152602860248201527f456a6563746f723a204f6e6c79206f776e6572206f7220656a6563746f722063604482015267185b88195a9958dd60c21b60648201526084015b60405180910390fd5b6000825167ffffffffffffffff81111561033d5761033d610ef5565b604051908082528060200260200182016040528015610366578160200160208202803683370190505b50905060005b835181101561088e5780600061038182610ab3565b905060008080805b89878151811061039b5761039b61133c565b6020026020010151518160ff1610156107df5760007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635401ed278c8a815181106103f1576103f161133c565b60200260200101518460ff168151811061040d5761040d61133c565b6020026020010151896040518363ffffffff1660e01b815260040161043f92919091825260ff16602082015260400190565b602060405180830381865afa15801561045c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104809190611352565b336000908152606560205260409020546001600160601b0391909116915060ff1680156104c4575060ff871660009081526067602052604090205463ffffffff1615155b80156104d85750856104d68287611391565b115b1561052e575060ff861660009081526066602090815260408083208151808301909252428252818301888152815460018181018455928652939094209151600290930290910191825591519082015591506107df565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636e3b17db7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663296bb0648e8c8151811061059e5761059e61133c565b60200260200101518660ff16815181106105ba576105ba61133c565b60200260200101516040518263ffffffff1660e01b81526004016105e091815260200190565b602060405180830381865afa1580156105fd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061062191906113a9565b6040516001600160f81b031960f88c901b1660208201526021016040516020818303038152906040526040518363ffffffff1660e01b8152600401610667929190611413565b600060405180830381600087803b15801561068157600080fd5b505af1925050508015610692575060015b61073c573d8080156106c0576040519150601f19603f3d011682016040523d82523d6000602084013e6106c5565b606091505b507fae1dcabe5fd19643522b5e06189c4f844e5ba5d3bf0c17e47a22c68dd585b6ef8c8a815181106106f9576106f961133c565b60200260200101518460ff16815181106107155761071561133c565b6020026020010151898360405161072e9392919061143f565b60405180910390a1506107ce565b6107468186611391565b94506107518461146a565b93507f97ddb711c61a9d2d7effcba3e042a33862297f898d555655cca39ec4451f53b48b89815181106107865761078661133c565b60200260200101518360ff16815181106107a2576107a261133c565b6020026020010151886040516107c592919091825260ff16602082015260400190565b60405180910390a15b506107d88161148e565b9050610389565b50801580156107fd57503360009081526065602052604090205460ff165b1561084b5760ff851660009081526066602090815260408083208151808301909252428252818301878152815460018181018455928652939094209151600290930290910191825591519101555b8187878151811061085e5761085e61133c565b602002602001019063ffffffff16908163ffffffff1681525050505050505080610887906114ae565b905061036c565b5092915050565b61089d610d30565b6108a78282610d8a565b5050565b606660205281600052604060002081815481106108c757600080fd5b600091825260209091206002909102018054600190910154909250905082565b6108ef610d30565b6108f96000610dee565b565b610903610d30565b6108a78282610e40565b600054610100900460ff161580801561092d5750600054600160ff909116105b806109475750303b158015610947575060005460ff166001145b6109aa5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610318565b6000805460ff1916600117905580156109cd576000805461ff0019166101001790555b6109d684610dee565b60005b83518160ff161015610a1e57610a0c848260ff16815181106109fd576109fd61133c565b60200260200101516001610d8a565b80610a168161148e565b9150506109d9565b5060005b82518160ff161015610a6657610a5481848360ff1681518110610a4757610a4761133c565b6020026020010151610e40565b80610a5e8161148e565b915050610a22565b508015610aad576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60ff81166000908152606760205260408120548190610ad89063ffffffff16426114c9565b60405163d5eccc0560e01b815260ff85166004820152909150600090612710907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d5eccc0590602401602060405180830381865afa158015610b49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6d9190611352565b60ff8616600090815260676020526040902054610b969190640100000000900461ffff166114e0565b610ba0919061150f565b60ff85166000908152606660205260408120546001600160601b03929092169250908190610bd2575090949350505050565b60ff8616600090815260666020526040902054610bf1906001906114c9565b90505b60ff86166000908152606660205260409020805485919083908110610c1b57610c1b61133c565b9060005260206000209060020201600001541115610c905760ff86166000908152606660205260409020805482908110610c5757610c5761133c565b90600052602060002090600202016001015482610c749190611391565b915080610c8057610c90565b610c8981611543565b9050610bf4565b828210610ca35750600095945050505050565b610cad82846114c9565b9695505050505050565b610cbf610d30565b6001600160a01b038116610d245760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610318565b610d2d81610dee565b50565b6033546001600160a01b031633146108f95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610318565b6001600160a01b038216600081815260656020908152604091829020805460ff19168515159081179091558251938452908301527f7676686b6d22e112412bd874d70177e011ab06602c26063f19f0386c9a3cee4291015b60405180910390a15050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60ff8216600081815260676020908152604091829020845181548684015163ffffffff90921665ffffffffffff19909116811764010000000061ffff90931692830217909255835194855291840152908201527fe69c2827a1e2fdd32265ebb4eeea5ee564f0551cf5dfed4150f8e116a67209eb90606001610de2565b803560ff81168114610ece57600080fd5b919050565b600060208284031215610ee557600080fd5b610eee82610ebd565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610f3457610f34610ef5565b604052919050565b600067ffffffffffffffff821115610f5657610f56610ef5565b5060051b60200190565b60006020808385031215610f7357600080fd5b823567ffffffffffffffff80821115610f8b57600080fd5b818501915085601f830112610f9f57600080fd5b8135610fb2610fad82610f3c565b610f0b565b818152600591821b8401850191858201919089841115610fd157600080fd5b8686015b8481101561105d57803586811115610fed5760008081fd5b8701603f81018c13610fff5760008081fd5b888101356040611011610fad83610f3c565b82815291851b83018101918b8101908f84111561102e5760008081fd5b938201935b8385101561104c5784358252938c0193908c0190611033565b885250505093880193508701610fd5565b50909998505050505050505050565b6020808252825182820181905260009190848201906040850190845b818110156110aa57835163ffffffff1683529284019291840191600101611088565b50909695505050505050565b6001600160a01b0381168114610d2d57600080fd5b600080604083850312156110de57600080fd5b82356110e9816110b6565b9150602083013580151581146110fe57600080fd5b809150509250929050565b6000806040838503121561111c57600080fd5b61112583610ebd565b946020939093013593505050565b60006020828403121561114557600080fd5b8135610eee816110b6565b60006040828403121561116257600080fd5b6040516040810181811067ffffffffffffffff8211171561118557611185610ef5565b604052905080823563ffffffff8116811461119f57600080fd5b8152602083013561ffff811681146111b657600080fd5b6020919091015292915050565b600080606083850312156111d657600080fd5b6111df83610ebd565b91506111ee8460208501611150565b90509250929050565b600082601f83011261120857600080fd5b81356020611218610fad83610f3c565b82815260069290921b8401810191818101908684111561123757600080fd5b8286015b8481101561125b5761124d8882611150565b83529183019160400161123b565b509695505050505050565b60008060006060848603121561127b57600080fd5b8335611286816110b6565b925060208481013567ffffffffffffffff808211156112a457600080fd5b818701915087601f8301126112b857600080fd5b81356112c6610fad82610f3c565b81815260059190911b8301840190848101908a8311156112e557600080fd5b938501935b8285101561130c5784356112fd816110b6565b825293850193908501906112ea565b96505050604087013592508083111561132457600080fd5b5050611332868287016111f7565b9150509250925092565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561136457600080fd5b81516001600160601b0381168114610eee57600080fd5b634e487b7160e01b600052601160045260246000fd5b600082198211156113a4576113a461137b565b500190565b6000602082840312156113bb57600080fd5b8151610eee816110b6565b6000815180845260005b818110156113ec576020818501810151868301820152016113d0565b818111156113fe576000602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0383168152604060208201819052600090611437908301846113c6565b949350505050565b83815260ff8316602082015260606040820152600061146160608301846113c6565b95945050505050565b600063ffffffff808316818114156114845761148461137b565b6001019392505050565b600060ff821660ff8114156114a5576114a561137b565b60010192915050565b60006000198214156114c2576114c261137b565b5060010190565b6000828210156114db576114db61137b565b500390565b60006001600160601b03808316818516818304811182151516156115065761150661137b565b02949350505050565b60006001600160601b038084168061153757634e487b7160e01b600052601260045260246000fd5b92169190910492915050565b6000816115525761155261137b565b50600019019056fea264697066735822122078baaa6d8128524558726d21b0b0fc5bcdcf2eb9444c557f649ae6003e46730864736f6c634300080c0033", + ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_registryCoordinator\",\"type\":\"address\",\"internalType\":\"contractIRegistryCoordinator\"},{\"name\":\"_stakeRegistry\",\"type\":\"address\",\"internalType\":\"contractIStakeRegistry\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"amountEjectableForQuorum\",\"inputs\":[{\"name\":\"_quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"ejectOperators\",\"inputs\":[{\"name\":\"_operatorIds\",\"type\":\"bytes32[][]\",\"internalType\":\"bytes32[][]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_ejectors\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"_quorumEjectionParams\",\"type\":\"tuple[]\",\"internalType\":\"structIEjectionManager.QuorumEjectionParams[]\",\"components\":[{\"name\":\"rateLimitWindow\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"ejectableStakePercent\",\"type\":\"uint16\",\"internalType\":\"uint16\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isEjector\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"quorumEjectionParams\",\"inputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"rateLimitWindow\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"ejectableStakePercent\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"registryCoordinator\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIRegistryCoordinator\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setEjector\",\"inputs\":[{\"name\":\"_ejector\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_status\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setQuorumEjectionParams\",\"inputs\":[{\"name\":\"_quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"_quorumEjectionParams\",\"type\":\"tuple\",\"internalType\":\"structIEjectionManager.QuorumEjectionParams\",\"components\":[{\"name\":\"rateLimitWindow\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"ejectableStakePercent\",\"type\":\"uint16\",\"internalType\":\"uint16\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"stakeEjectedForQuorum\",\"inputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"timestamp\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"stakeEjected\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"stakeRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStakeRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"EjectorUpdated\",\"inputs\":[{\"name\":\"ejector\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"status\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorEjected\",\"inputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"QuorumEjection\",\"inputs\":[{\"name\":\"ejectedOperators\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"ratelimitHit\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"QuorumEjectionParamsSet\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"},{\"name\":\"rateLimitWindow\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"ejectableStakePercent\",\"type\":\"uint16\",\"indexed\":false,\"internalType\":\"uint16\"}],\"anonymous\":false}]", + Bin: "0x60c06040523480156200001157600080fd5b50604051620015cc380380620015cc833981016040819052620000349162000134565b6001600160a01b03808316608052811660a0526200005162000059565b505062000173565b600054610100900460ff1615620000c65760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000119576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200013157600080fd5b50565b600080604083850312156200014857600080fd5b825162000155816200011b565b602084015190925062000168816200011b565b809150509250929050565b60805160a051611417620001b5600039600081816101800152818161035a0152610a0a0152600081816101f2015281816104ef015261051e01526114176000f3fe608060405234801561001057600080fd5b50600436106100ce5760003560e01c80636d14a9871161008c5780638b88a024116100665780638b88a0241461022f5780638da5cb5b14610242578063b13f450414610253578063f2fde38b1461027457600080fd5b80636d14a987146101ed578063715018a61461021457806377d175861461021c57600080fd5b8062482569146100d35780630a0593d11461012b57806310ea4f8a146101405780633a0b0ddd14610153578063683048351461017b5780636c08a879146101ba575b600080fd5b6101076100e1366004610de3565b60676020526000908152604090205463ffffffff811690640100000000900461ffff1682565b6040805163ffffffff909316835261ffff9091166020830152015b60405180910390f35b61013e610139366004610e70565b610287565b005b61013e61014e366004610f91565b6107a9565b610166610161366004610fcf565b6107bb565b60408051928352602083019190915201610122565b6101a27f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610122565b6101dd6101c8366004610ff9565b60656020526000908152604090205460ff1681565b6040519015158152602001610122565b6101a27f000000000000000000000000000000000000000000000000000000000000000081565b61013e6107f7565b61013e61022a366004611089565b61080b565b61013e61023d36600461112c565b61081d565b6033546001600160a01b03166101a2565b610266610261366004610de3565b6109c3565b604051908152602001610122565b61013e610282366004610ff9565b610bc7565b3360009081526065602052604090205460ff16806102af57506033546001600160a01b031633145b6103115760405162461bcd60e51b815260206004820152602860248201527f456a6563746f723a204f6e6c79206f776e6572206f7220656a6563746f722063604482015267185b88195a9958dd60c21b60648201526084015b60405180910390fd5b60005b81518110156107a557806000610329826109c3565b905060008080805b87878151811061034357610343611202565b6020026020010151518160ff1610156106e35760007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635401ed278a8a8151811061039957610399611202565b60200260200101518460ff16815181106103b5576103b5611202565b6020026020010151896040518363ffffffff1660e01b81526004016103e792919091825260ff16602082015260400190565b602060405180830381865afa158015610404573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104289190611218565b336000908152606560205260409020546001600160601b0391909116915060ff16801561046c575060ff871660009081526067602052604090205463ffffffff1615155b801561048057508561047e8287611257565b115b156104d6575060ff861660009081526066602090815260408083208151808301909252428252818301888152815460018181018455928652939094209151600290930290910191825591519082015591506106e3565b6104e08186611257565b94506104eb8461126f565b93507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636e3b17db7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663296bb0648c8c8151811061055d5761055d611202565b60200260200101518660ff168151811061057957610579611202565b60200260200101516040518263ffffffff1660e01b815260040161059f91815260200190565b602060405180830381865afa1580156105bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e09190611293565b6040516001600160f81b031960f88c901b1660208201526021016040516020818303038152906040526040518363ffffffff1660e01b81526004016106269291906112b0565b600060405180830381600087803b15801561064057600080fd5b505af1158015610654573d6000803e3d6000fd5b505050507f97ddb711c61a9d2d7effcba3e042a33862297f898d555655cca39ec4451f53b489898151811061068b5761068b611202565b60200260200101518360ff16815181106106a7576106a7611202565b6020026020010151886040516106ca92919091825260ff16602082015260400190565b60405180910390a1506106dc81611315565b9050610331565b508015801561070157503360009081526065602052604090205460ff165b1561074f5760ff851660009081526066602090815260408083208151808301909252428252818301878152815460018181018455928652939094209151600290930290910191825591519101555b6040805163ffffffff8416815282151560208201527f19dd87ae49ed14a795f8c2d5e8055bf2a4a9d01641a00a2f8f0a5a7bf7f70249910160405180910390a150505050508061079e90611335565b9050610314565b5050565b6107b1610c40565b6107a58282610c9a565b606660205281600052604060002081815481106107d757600080fd5b600091825260209091206002909102018054600190910154909250905082565b6107ff610c40565b6108096000610cfe565b565b610813610c40565b6107a58282610d50565b600054610100900460ff161580801561083d5750600054600160ff909116105b806108575750303b158015610857575060005460ff166001145b6108ba5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610308565b6000805460ff1916600117905580156108dd576000805461ff0019166101001790555b6108e684610cfe565b60005b83518160ff16101561092e5761091c848260ff168151811061090d5761090d611202565b60200260200101516001610c9a565b8061092681611315565b9150506108e9565b5060005b82518160ff1610156109765761096481848360ff168151811061095757610957611202565b6020026020010151610d50565b8061096e81611315565b915050610932565b5080156109bd576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60ff811660009081526067602052604081205481906109e89063ffffffff1642611350565b60405163d5eccc0560e01b815260ff85166004820152909150600090612710907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d5eccc0590602401602060405180830381865afa158015610a59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7d9190611218565b60ff8616600090815260676020526040902054610aa69190640100000000900461ffff16611367565b610ab09190611396565b60ff85166000908152606660205260408120546001600160601b03929092169250908190610ae2575090949350505050565b60ff8616600090815260666020526040902054610b0190600190611350565b90505b60ff86166000908152606660205260409020805485919083908110610b2b57610b2b611202565b9060005260206000209060020201600001541115610ba05760ff86166000908152606660205260409020805482908110610b6757610b67611202565b90600052602060002090600202016001015482610b849190611257565b915080610b9057610ba0565b610b99816113ca565b9050610b04565b828210610bb35750600095945050505050565b610bbd8284611350565b9695505050505050565b610bcf610c40565b6001600160a01b038116610c345760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610308565b610c3d81610cfe565b50565b6033546001600160a01b031633146108095760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610308565b6001600160a01b038216600081815260656020908152604091829020805460ff19168515159081179091558251938452908301527f7676686b6d22e112412bd874d70177e011ab06602c26063f19f0386c9a3cee4291015b60405180910390a15050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60ff8216600081815260676020908152604091829020845181548684015163ffffffff90921665ffffffffffff19909116811764010000000061ffff90931692830217909255835194855291840152908201527fe69c2827a1e2fdd32265ebb4eeea5ee564f0551cf5dfed4150f8e116a67209eb90606001610cf2565b803560ff81168114610dde57600080fd5b919050565b600060208284031215610df557600080fd5b610dfe82610dcd565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610e4457610e44610e05565b604052919050565b600067ffffffffffffffff821115610e6657610e66610e05565b5060051b60200190565b60006020808385031215610e8357600080fd5b823567ffffffffffffffff80821115610e9b57600080fd5b818501915085601f830112610eaf57600080fd5b8135610ec2610ebd82610e4c565b610e1b565b818152600591821b8401850191858201919089841115610ee157600080fd5b8686015b84811015610f6d57803586811115610efd5760008081fd5b8701603f81018c13610f0f5760008081fd5b888101356040610f21610ebd83610e4c565b82815291851b83018101918b8101908f841115610f3e5760008081fd5b938201935b83851015610f5c5784358252938c0193908c0190610f43565b885250505093880193508701610ee5565b50909998505050505050505050565b6001600160a01b0381168114610c3d57600080fd5b60008060408385031215610fa457600080fd5b8235610faf81610f7c565b915060208301358015158114610fc457600080fd5b809150509250929050565b60008060408385031215610fe257600080fd5b610feb83610dcd565b946020939093013593505050565b60006020828403121561100b57600080fd5b8135610dfe81610f7c565b60006040828403121561102857600080fd5b6040516040810181811067ffffffffffffffff8211171561104b5761104b610e05565b604052905080823563ffffffff8116811461106557600080fd5b8152602083013561ffff8116811461107c57600080fd5b6020919091015292915050565b6000806060838503121561109c57600080fd5b6110a583610dcd565b91506110b48460208501611016565b90509250929050565b600082601f8301126110ce57600080fd5b813560206110de610ebd83610e4c565b82815260069290921b840181019181810190868411156110fd57600080fd5b8286015b84811015611121576111138882611016565b835291830191604001611101565b509695505050505050565b60008060006060848603121561114157600080fd5b833561114c81610f7c565b925060208481013567ffffffffffffffff8082111561116a57600080fd5b818701915087601f83011261117e57600080fd5b813561118c610ebd82610e4c565b81815260059190911b8301840190848101908a8311156111ab57600080fd5b938501935b828510156111d25784356111c381610f7c565b825293850193908501906111b0565b9650505060408701359250808311156111ea57600080fd5b50506111f8868287016110bd565b9150509250925092565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561122a57600080fd5b81516001600160601b0381168114610dfe57600080fd5b634e487b7160e01b600052601160045260246000fd5b6000821982111561126a5761126a611241565b500190565b600063ffffffff8083168181141561128957611289611241565b6001019392505050565b6000602082840312156112a557600080fd5b8151610dfe81610f7c565b60018060a01b038316815260006020604081840152835180604085015260005b818110156112ec578581018301518582016060015282016112d0565b818111156112fe576000606083870101525b50601f01601f191692909201606001949350505050565b600060ff821660ff81141561132c5761132c611241565b60010192915050565b600060001982141561134957611349611241565b5060010190565b60008282101561136257611362611241565b500390565b60006001600160601b038083168185168183048111821515161561138d5761138d611241565b02949350505050565b60006001600160601b03808416806113be57634e487b7160e01b600052601260045260246000fd5b92169190910492915050565b6000816113d9576113d9611241565b50600019019056fea2646970667358221220b1f1a4b2486bab844035e8191e03bbb36a671b7f433f7588183ad0a4f3f4284364736f6c634300080c0033", } // ContractEjectionManagerABI is the input ABI used to generate the binding from. @@ -455,21 +455,21 @@ func (_ContractEjectionManager *ContractEjectionManagerCallerSession) StakeRegis // EjectOperators is a paid mutator transaction binding the contract method 0x0a0593d1. // -// Solidity: function ejectOperators(bytes32[][] _operatorIds) returns(uint32[]) +// Solidity: function ejectOperators(bytes32[][] _operatorIds) returns() func (_ContractEjectionManager *ContractEjectionManagerTransactor) EjectOperators(opts *bind.TransactOpts, _operatorIds [][][32]byte) (*types.Transaction, error) { return _ContractEjectionManager.contract.Transact(opts, "ejectOperators", _operatorIds) } // EjectOperators is a paid mutator transaction binding the contract method 0x0a0593d1. // -// Solidity: function ejectOperators(bytes32[][] _operatorIds) returns(uint32[]) +// Solidity: function ejectOperators(bytes32[][] _operatorIds) returns() func (_ContractEjectionManager *ContractEjectionManagerSession) EjectOperators(_operatorIds [][][32]byte) (*types.Transaction, error) { return _ContractEjectionManager.Contract.EjectOperators(&_ContractEjectionManager.TransactOpts, _operatorIds) } // EjectOperators is a paid mutator transaction binding the contract method 0x0a0593d1. // -// Solidity: function ejectOperators(bytes32[][] _operatorIds) returns(uint32[]) +// Solidity: function ejectOperators(bytes32[][] _operatorIds) returns() func (_ContractEjectionManager *ContractEjectionManagerTransactorSession) EjectOperators(_operatorIds [][][32]byte) (*types.Transaction, error) { return _ContractEjectionManager.Contract.EjectOperators(&_ContractEjectionManager.TransactOpts, _operatorIds) } @@ -714,9 +714,9 @@ func (_ContractEjectionManager *ContractEjectionManagerFilterer) ParseEjectorUpd return event, nil } -// ContractEjectionManagerFailedOperatorEjectionIterator is returned from FilterFailedOperatorEjection and is used to iterate over the raw logs and unpacked data for FailedOperatorEjection events raised by the ContractEjectionManager contract. -type ContractEjectionManagerFailedOperatorEjectionIterator struct { - Event *ContractEjectionManagerFailedOperatorEjection // Event containing the contract specifics and raw log +// ContractEjectionManagerInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the ContractEjectionManager contract. +type ContractEjectionManagerInitializedIterator struct { + Event *ContractEjectionManagerInitialized // Event containing the contract specifics and raw log contract *bind.BoundContract // Generic contract to use for unpacking event data event string // Event name to use for unpacking event data @@ -730,7 +730,7 @@ type ContractEjectionManagerFailedOperatorEjectionIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more events found. In case of a retrieval or parsing error, false is // returned and Error() can be queried for the exact failure. -func (it *ContractEjectionManagerFailedOperatorEjectionIterator) Next() bool { +func (it *ContractEjectionManagerInitializedIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -739,7 +739,7 @@ func (it *ContractEjectionManagerFailedOperatorEjectionIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(ContractEjectionManagerFailedOperatorEjection) + it.Event = new(ContractEjectionManagerInitialized) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -754,7 +754,7 @@ func (it *ContractEjectionManagerFailedOperatorEjectionIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(ContractEjectionManagerFailedOperatorEjection) + it.Event = new(ContractEjectionManagerInitialized) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -770,43 +770,41 @@ func (it *ContractEjectionManagerFailedOperatorEjectionIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *ContractEjectionManagerFailedOperatorEjectionIterator) Error() error { +func (it *ContractEjectionManagerInitializedIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *ContractEjectionManagerFailedOperatorEjectionIterator) Close() error { +func (it *ContractEjectionManagerInitializedIterator) Close() error { it.sub.Unsubscribe() return nil } -// ContractEjectionManagerFailedOperatorEjection represents a FailedOperatorEjection event raised by the ContractEjectionManager contract. -type ContractEjectionManagerFailedOperatorEjection struct { - OperatorId [32]byte - QuorumNumber uint8 - Err []byte - Raw types.Log // Blockchain specific contextual infos +// ContractEjectionManagerInitialized represents a Initialized event raised by the ContractEjectionManager contract. +type ContractEjectionManagerInitialized struct { + Version uint8 + Raw types.Log // Blockchain specific contextual infos } -// FilterFailedOperatorEjection is a free log retrieval operation binding the contract event 0xae1dcabe5fd19643522b5e06189c4f844e5ba5d3bf0c17e47a22c68dd585b6ef. +// FilterInitialized is a free log retrieval operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. // -// Solidity: event FailedOperatorEjection(bytes32 operatorId, uint8 quorumNumber, bytes err) -func (_ContractEjectionManager *ContractEjectionManagerFilterer) FilterFailedOperatorEjection(opts *bind.FilterOpts) (*ContractEjectionManagerFailedOperatorEjectionIterator, error) { +// Solidity: event Initialized(uint8 version) +func (_ContractEjectionManager *ContractEjectionManagerFilterer) FilterInitialized(opts *bind.FilterOpts) (*ContractEjectionManagerInitializedIterator, error) { - logs, sub, err := _ContractEjectionManager.contract.FilterLogs(opts, "FailedOperatorEjection") + logs, sub, err := _ContractEjectionManager.contract.FilterLogs(opts, "Initialized") if err != nil { return nil, err } - return &ContractEjectionManagerFailedOperatorEjectionIterator{contract: _ContractEjectionManager.contract, event: "FailedOperatorEjection", logs: logs, sub: sub}, nil + return &ContractEjectionManagerInitializedIterator{contract: _ContractEjectionManager.contract, event: "Initialized", logs: logs, sub: sub}, nil } -// WatchFailedOperatorEjection is a free log subscription operation binding the contract event 0xae1dcabe5fd19643522b5e06189c4f844e5ba5d3bf0c17e47a22c68dd585b6ef. +// WatchInitialized is a free log subscription operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. // -// Solidity: event FailedOperatorEjection(bytes32 operatorId, uint8 quorumNumber, bytes err) -func (_ContractEjectionManager *ContractEjectionManagerFilterer) WatchFailedOperatorEjection(opts *bind.WatchOpts, sink chan<- *ContractEjectionManagerFailedOperatorEjection) (event.Subscription, error) { +// Solidity: event Initialized(uint8 version) +func (_ContractEjectionManager *ContractEjectionManagerFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *ContractEjectionManagerInitialized) (event.Subscription, error) { - logs, sub, err := _ContractEjectionManager.contract.WatchLogs(opts, "FailedOperatorEjection") + logs, sub, err := _ContractEjectionManager.contract.WatchLogs(opts, "Initialized") if err != nil { return nil, err } @@ -816,8 +814,8 @@ func (_ContractEjectionManager *ContractEjectionManagerFilterer) WatchFailedOper select { case log := <-logs: // New log arrived, parse the event and forward to the user - event := new(ContractEjectionManagerFailedOperatorEjection) - if err := _ContractEjectionManager.contract.UnpackLog(event, "FailedOperatorEjection", log); err != nil { + event := new(ContractEjectionManagerInitialized) + if err := _ContractEjectionManager.contract.UnpackLog(event, "Initialized", log); err != nil { return err } event.Raw = log @@ -838,21 +836,21 @@ func (_ContractEjectionManager *ContractEjectionManagerFilterer) WatchFailedOper }), nil } -// ParseFailedOperatorEjection is a log parse operation binding the contract event 0xae1dcabe5fd19643522b5e06189c4f844e5ba5d3bf0c17e47a22c68dd585b6ef. +// ParseInitialized is a log parse operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. // -// Solidity: event FailedOperatorEjection(bytes32 operatorId, uint8 quorumNumber, bytes err) -func (_ContractEjectionManager *ContractEjectionManagerFilterer) ParseFailedOperatorEjection(log types.Log) (*ContractEjectionManagerFailedOperatorEjection, error) { - event := new(ContractEjectionManagerFailedOperatorEjection) - if err := _ContractEjectionManager.contract.UnpackLog(event, "FailedOperatorEjection", log); err != nil { +// Solidity: event Initialized(uint8 version) +func (_ContractEjectionManager *ContractEjectionManagerFilterer) ParseInitialized(log types.Log) (*ContractEjectionManagerInitialized, error) { + event := new(ContractEjectionManagerInitialized) + if err := _ContractEjectionManager.contract.UnpackLog(event, "Initialized", log); err != nil { return nil, err } event.Raw = log return event, nil } -// ContractEjectionManagerInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the ContractEjectionManager contract. -type ContractEjectionManagerInitializedIterator struct { - Event *ContractEjectionManagerInitialized // Event containing the contract specifics and raw log +// ContractEjectionManagerOperatorEjectedIterator is returned from FilterOperatorEjected and is used to iterate over the raw logs and unpacked data for OperatorEjected events raised by the ContractEjectionManager contract. +type ContractEjectionManagerOperatorEjectedIterator struct { + Event *ContractEjectionManagerOperatorEjected // Event containing the contract specifics and raw log contract *bind.BoundContract // Generic contract to use for unpacking event data event string // Event name to use for unpacking event data @@ -866,7 +864,7 @@ type ContractEjectionManagerInitializedIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more events found. In case of a retrieval or parsing error, false is // returned and Error() can be queried for the exact failure. -func (it *ContractEjectionManagerInitializedIterator) Next() bool { +func (it *ContractEjectionManagerOperatorEjectedIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -875,7 +873,7 @@ func (it *ContractEjectionManagerInitializedIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(ContractEjectionManagerInitialized) + it.Event = new(ContractEjectionManagerOperatorEjected) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -890,7 +888,7 @@ func (it *ContractEjectionManagerInitializedIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(ContractEjectionManagerInitialized) + it.Event = new(ContractEjectionManagerOperatorEjected) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -906,41 +904,42 @@ func (it *ContractEjectionManagerInitializedIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *ContractEjectionManagerInitializedIterator) Error() error { +func (it *ContractEjectionManagerOperatorEjectedIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *ContractEjectionManagerInitializedIterator) Close() error { +func (it *ContractEjectionManagerOperatorEjectedIterator) Close() error { it.sub.Unsubscribe() return nil } -// ContractEjectionManagerInitialized represents a Initialized event raised by the ContractEjectionManager contract. -type ContractEjectionManagerInitialized struct { - Version uint8 - Raw types.Log // Blockchain specific contextual infos +// ContractEjectionManagerOperatorEjected represents a OperatorEjected event raised by the ContractEjectionManager contract. +type ContractEjectionManagerOperatorEjected struct { + OperatorId [32]byte + QuorumNumber uint8 + Raw types.Log // Blockchain specific contextual infos } -// FilterInitialized is a free log retrieval operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. +// FilterOperatorEjected is a free log retrieval operation binding the contract event 0x97ddb711c61a9d2d7effcba3e042a33862297f898d555655cca39ec4451f53b4. // -// Solidity: event Initialized(uint8 version) -func (_ContractEjectionManager *ContractEjectionManagerFilterer) FilterInitialized(opts *bind.FilterOpts) (*ContractEjectionManagerInitializedIterator, error) { +// Solidity: event OperatorEjected(bytes32 operatorId, uint8 quorumNumber) +func (_ContractEjectionManager *ContractEjectionManagerFilterer) FilterOperatorEjected(opts *bind.FilterOpts) (*ContractEjectionManagerOperatorEjectedIterator, error) { - logs, sub, err := _ContractEjectionManager.contract.FilterLogs(opts, "Initialized") + logs, sub, err := _ContractEjectionManager.contract.FilterLogs(opts, "OperatorEjected") if err != nil { return nil, err } - return &ContractEjectionManagerInitializedIterator{contract: _ContractEjectionManager.contract, event: "Initialized", logs: logs, sub: sub}, nil + return &ContractEjectionManagerOperatorEjectedIterator{contract: _ContractEjectionManager.contract, event: "OperatorEjected", logs: logs, sub: sub}, nil } -// WatchInitialized is a free log subscription operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. +// WatchOperatorEjected is a free log subscription operation binding the contract event 0x97ddb711c61a9d2d7effcba3e042a33862297f898d555655cca39ec4451f53b4. // -// Solidity: event Initialized(uint8 version) -func (_ContractEjectionManager *ContractEjectionManagerFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *ContractEjectionManagerInitialized) (event.Subscription, error) { +// Solidity: event OperatorEjected(bytes32 operatorId, uint8 quorumNumber) +func (_ContractEjectionManager *ContractEjectionManagerFilterer) WatchOperatorEjected(opts *bind.WatchOpts, sink chan<- *ContractEjectionManagerOperatorEjected) (event.Subscription, error) { - logs, sub, err := _ContractEjectionManager.contract.WatchLogs(opts, "Initialized") + logs, sub, err := _ContractEjectionManager.contract.WatchLogs(opts, "OperatorEjected") if err != nil { return nil, err } @@ -950,8 +949,8 @@ func (_ContractEjectionManager *ContractEjectionManagerFilterer) WatchInitialize select { case log := <-logs: // New log arrived, parse the event and forward to the user - event := new(ContractEjectionManagerInitialized) - if err := _ContractEjectionManager.contract.UnpackLog(event, "Initialized", log); err != nil { + event := new(ContractEjectionManagerOperatorEjected) + if err := _ContractEjectionManager.contract.UnpackLog(event, "OperatorEjected", log); err != nil { return err } event.Raw = log @@ -972,21 +971,21 @@ func (_ContractEjectionManager *ContractEjectionManagerFilterer) WatchInitialize }), nil } -// ParseInitialized is a log parse operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. +// ParseOperatorEjected is a log parse operation binding the contract event 0x97ddb711c61a9d2d7effcba3e042a33862297f898d555655cca39ec4451f53b4. // -// Solidity: event Initialized(uint8 version) -func (_ContractEjectionManager *ContractEjectionManagerFilterer) ParseInitialized(log types.Log) (*ContractEjectionManagerInitialized, error) { - event := new(ContractEjectionManagerInitialized) - if err := _ContractEjectionManager.contract.UnpackLog(event, "Initialized", log); err != nil { +// Solidity: event OperatorEjected(bytes32 operatorId, uint8 quorumNumber) +func (_ContractEjectionManager *ContractEjectionManagerFilterer) ParseOperatorEjected(log types.Log) (*ContractEjectionManagerOperatorEjected, error) { + event := new(ContractEjectionManagerOperatorEjected) + if err := _ContractEjectionManager.contract.UnpackLog(event, "OperatorEjected", log); err != nil { return nil, err } event.Raw = log return event, nil } -// ContractEjectionManagerOperatorEjectedIterator is returned from FilterOperatorEjected and is used to iterate over the raw logs and unpacked data for OperatorEjected events raised by the ContractEjectionManager contract. -type ContractEjectionManagerOperatorEjectedIterator struct { - Event *ContractEjectionManagerOperatorEjected // Event containing the contract specifics and raw log +// ContractEjectionManagerOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the ContractEjectionManager contract. +type ContractEjectionManagerOwnershipTransferredIterator struct { + Event *ContractEjectionManagerOwnershipTransferred // Event containing the contract specifics and raw log contract *bind.BoundContract // Generic contract to use for unpacking event data event string // Event name to use for unpacking event data @@ -1000,7 +999,7 @@ type ContractEjectionManagerOperatorEjectedIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more events found. In case of a retrieval or parsing error, false is // returned and Error() can be queried for the exact failure. -func (it *ContractEjectionManagerOperatorEjectedIterator) Next() bool { +func (it *ContractEjectionManagerOwnershipTransferredIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -1009,7 +1008,7 @@ func (it *ContractEjectionManagerOperatorEjectedIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(ContractEjectionManagerOperatorEjected) + it.Event = new(ContractEjectionManagerOwnershipTransferred) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1024,7 +1023,7 @@ func (it *ContractEjectionManagerOperatorEjectedIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(ContractEjectionManagerOperatorEjected) + it.Event = new(ContractEjectionManagerOwnershipTransferred) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1040,42 +1039,60 @@ func (it *ContractEjectionManagerOperatorEjectedIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *ContractEjectionManagerOperatorEjectedIterator) Error() error { +func (it *ContractEjectionManagerOwnershipTransferredIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *ContractEjectionManagerOperatorEjectedIterator) Close() error { +func (it *ContractEjectionManagerOwnershipTransferredIterator) Close() error { it.sub.Unsubscribe() return nil } -// ContractEjectionManagerOperatorEjected represents a OperatorEjected event raised by the ContractEjectionManager contract. -type ContractEjectionManagerOperatorEjected struct { - OperatorId [32]byte - QuorumNumber uint8 - Raw types.Log // Blockchain specific contextual infos +// ContractEjectionManagerOwnershipTransferred represents a OwnershipTransferred event raised by the ContractEjectionManager contract. +type ContractEjectionManagerOwnershipTransferred struct { + PreviousOwner common.Address + NewOwner common.Address + Raw types.Log // Blockchain specific contextual infos } -// FilterOperatorEjected is a free log retrieval operation binding the contract event 0x97ddb711c61a9d2d7effcba3e042a33862297f898d555655cca39ec4451f53b4. +// FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. // -// Solidity: event OperatorEjected(bytes32 operatorId, uint8 quorumNumber) -func (_ContractEjectionManager *ContractEjectionManagerFilterer) FilterOperatorEjected(opts *bind.FilterOpts) (*ContractEjectionManagerOperatorEjectedIterator, error) { +// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) +func (_ContractEjectionManager *ContractEjectionManagerFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*ContractEjectionManagerOwnershipTransferredIterator, error) { - logs, sub, err := _ContractEjectionManager.contract.FilterLogs(opts, "OperatorEjected") + var previousOwnerRule []interface{} + for _, previousOwnerItem := range previousOwner { + previousOwnerRule = append(previousOwnerRule, previousOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _ContractEjectionManager.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) if err != nil { return nil, err } - return &ContractEjectionManagerOperatorEjectedIterator{contract: _ContractEjectionManager.contract, event: "OperatorEjected", logs: logs, sub: sub}, nil + return &ContractEjectionManagerOwnershipTransferredIterator{contract: _ContractEjectionManager.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil } -// WatchOperatorEjected is a free log subscription operation binding the contract event 0x97ddb711c61a9d2d7effcba3e042a33862297f898d555655cca39ec4451f53b4. +// WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. // -// Solidity: event OperatorEjected(bytes32 operatorId, uint8 quorumNumber) -func (_ContractEjectionManager *ContractEjectionManagerFilterer) WatchOperatorEjected(opts *bind.WatchOpts, sink chan<- *ContractEjectionManagerOperatorEjected) (event.Subscription, error) { +// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) +func (_ContractEjectionManager *ContractEjectionManagerFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *ContractEjectionManagerOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) { - logs, sub, err := _ContractEjectionManager.contract.WatchLogs(opts, "OperatorEjected") + var previousOwnerRule []interface{} + for _, previousOwnerItem := range previousOwner { + previousOwnerRule = append(previousOwnerRule, previousOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _ContractEjectionManager.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) if err != nil { return nil, err } @@ -1085,8 +1102,8 @@ func (_ContractEjectionManager *ContractEjectionManagerFilterer) WatchOperatorEj select { case log := <-logs: // New log arrived, parse the event and forward to the user - event := new(ContractEjectionManagerOperatorEjected) - if err := _ContractEjectionManager.contract.UnpackLog(event, "OperatorEjected", log); err != nil { + event := new(ContractEjectionManagerOwnershipTransferred) + if err := _ContractEjectionManager.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { return err } event.Raw = log @@ -1107,21 +1124,21 @@ func (_ContractEjectionManager *ContractEjectionManagerFilterer) WatchOperatorEj }), nil } -// ParseOperatorEjected is a log parse operation binding the contract event 0x97ddb711c61a9d2d7effcba3e042a33862297f898d555655cca39ec4451f53b4. +// ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. // -// Solidity: event OperatorEjected(bytes32 operatorId, uint8 quorumNumber) -func (_ContractEjectionManager *ContractEjectionManagerFilterer) ParseOperatorEjected(log types.Log) (*ContractEjectionManagerOperatorEjected, error) { - event := new(ContractEjectionManagerOperatorEjected) - if err := _ContractEjectionManager.contract.UnpackLog(event, "OperatorEjected", log); err != nil { +// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) +func (_ContractEjectionManager *ContractEjectionManagerFilterer) ParseOwnershipTransferred(log types.Log) (*ContractEjectionManagerOwnershipTransferred, error) { + event := new(ContractEjectionManagerOwnershipTransferred) + if err := _ContractEjectionManager.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { return nil, err } event.Raw = log return event, nil } -// ContractEjectionManagerOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the ContractEjectionManager contract. -type ContractEjectionManagerOwnershipTransferredIterator struct { - Event *ContractEjectionManagerOwnershipTransferred // Event containing the contract specifics and raw log +// ContractEjectionManagerQuorumEjectionIterator is returned from FilterQuorumEjection and is used to iterate over the raw logs and unpacked data for QuorumEjection events raised by the ContractEjectionManager contract. +type ContractEjectionManagerQuorumEjectionIterator struct { + Event *ContractEjectionManagerQuorumEjection // Event containing the contract specifics and raw log contract *bind.BoundContract // Generic contract to use for unpacking event data event string // Event name to use for unpacking event data @@ -1135,7 +1152,7 @@ type ContractEjectionManagerOwnershipTransferredIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more events found. In case of a retrieval or parsing error, false is // returned and Error() can be queried for the exact failure. -func (it *ContractEjectionManagerOwnershipTransferredIterator) Next() bool { +func (it *ContractEjectionManagerQuorumEjectionIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -1144,7 +1161,7 @@ func (it *ContractEjectionManagerOwnershipTransferredIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(ContractEjectionManagerOwnershipTransferred) + it.Event = new(ContractEjectionManagerQuorumEjection) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1159,7 +1176,7 @@ func (it *ContractEjectionManagerOwnershipTransferredIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(ContractEjectionManagerOwnershipTransferred) + it.Event = new(ContractEjectionManagerQuorumEjection) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1175,60 +1192,42 @@ func (it *ContractEjectionManagerOwnershipTransferredIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *ContractEjectionManagerOwnershipTransferredIterator) Error() error { +func (it *ContractEjectionManagerQuorumEjectionIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *ContractEjectionManagerOwnershipTransferredIterator) Close() error { +func (it *ContractEjectionManagerQuorumEjectionIterator) Close() error { it.sub.Unsubscribe() return nil } -// ContractEjectionManagerOwnershipTransferred represents a OwnershipTransferred event raised by the ContractEjectionManager contract. -type ContractEjectionManagerOwnershipTransferred struct { - PreviousOwner common.Address - NewOwner common.Address - Raw types.Log // Blockchain specific contextual infos +// ContractEjectionManagerQuorumEjection represents a QuorumEjection event raised by the ContractEjectionManager contract. +type ContractEjectionManagerQuorumEjection struct { + EjectedOperators uint32 + RatelimitHit bool + Raw types.Log // Blockchain specific contextual infos } -// FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// FilterQuorumEjection is a free log retrieval operation binding the contract event 0x19dd87ae49ed14a795f8c2d5e8055bf2a4a9d01641a00a2f8f0a5a7bf7f70249. // -// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) -func (_ContractEjectionManager *ContractEjectionManagerFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*ContractEjectionManagerOwnershipTransferredIterator, error) { - - var previousOwnerRule []interface{} - for _, previousOwnerItem := range previousOwner { - previousOwnerRule = append(previousOwnerRule, previousOwnerItem) - } - var newOwnerRule []interface{} - for _, newOwnerItem := range newOwner { - newOwnerRule = append(newOwnerRule, newOwnerItem) - } +// Solidity: event QuorumEjection(uint32 ejectedOperators, bool ratelimitHit) +func (_ContractEjectionManager *ContractEjectionManagerFilterer) FilterQuorumEjection(opts *bind.FilterOpts) (*ContractEjectionManagerQuorumEjectionIterator, error) { - logs, sub, err := _ContractEjectionManager.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) + logs, sub, err := _ContractEjectionManager.contract.FilterLogs(opts, "QuorumEjection") if err != nil { return nil, err } - return &ContractEjectionManagerOwnershipTransferredIterator{contract: _ContractEjectionManager.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil + return &ContractEjectionManagerQuorumEjectionIterator{contract: _ContractEjectionManager.contract, event: "QuorumEjection", logs: logs, sub: sub}, nil } -// WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// WatchQuorumEjection is a free log subscription operation binding the contract event 0x19dd87ae49ed14a795f8c2d5e8055bf2a4a9d01641a00a2f8f0a5a7bf7f70249. // -// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) -func (_ContractEjectionManager *ContractEjectionManagerFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *ContractEjectionManagerOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) { - - var previousOwnerRule []interface{} - for _, previousOwnerItem := range previousOwner { - previousOwnerRule = append(previousOwnerRule, previousOwnerItem) - } - var newOwnerRule []interface{} - for _, newOwnerItem := range newOwner { - newOwnerRule = append(newOwnerRule, newOwnerItem) - } +// Solidity: event QuorumEjection(uint32 ejectedOperators, bool ratelimitHit) +func (_ContractEjectionManager *ContractEjectionManagerFilterer) WatchQuorumEjection(opts *bind.WatchOpts, sink chan<- *ContractEjectionManagerQuorumEjection) (event.Subscription, error) { - logs, sub, err := _ContractEjectionManager.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) + logs, sub, err := _ContractEjectionManager.contract.WatchLogs(opts, "QuorumEjection") if err != nil { return nil, err } @@ -1238,8 +1237,8 @@ func (_ContractEjectionManager *ContractEjectionManagerFilterer) WatchOwnershipT select { case log := <-logs: // New log arrived, parse the event and forward to the user - event := new(ContractEjectionManagerOwnershipTransferred) - if err := _ContractEjectionManager.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + event := new(ContractEjectionManagerQuorumEjection) + if err := _ContractEjectionManager.contract.UnpackLog(event, "QuorumEjection", log); err != nil { return err } event.Raw = log @@ -1260,12 +1259,12 @@ func (_ContractEjectionManager *ContractEjectionManagerFilterer) WatchOwnershipT }), nil } -// ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// ParseQuorumEjection is a log parse operation binding the contract event 0x19dd87ae49ed14a795f8c2d5e8055bf2a4a9d01641a00a2f8f0a5a7bf7f70249. // -// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) -func (_ContractEjectionManager *ContractEjectionManagerFilterer) ParseOwnershipTransferred(log types.Log) (*ContractEjectionManagerOwnershipTransferred, error) { - event := new(ContractEjectionManagerOwnershipTransferred) - if err := _ContractEjectionManager.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { +// Solidity: event QuorumEjection(uint32 ejectedOperators, bool ratelimitHit) +func (_ContractEjectionManager *ContractEjectionManagerFilterer) ParseQuorumEjection(log types.Log) (*ContractEjectionManagerQuorumEjection, error) { + event := new(ContractEjectionManagerQuorumEjection) + if err := _ContractEjectionManager.contract.UnpackLog(event, "QuorumEjection", log); err != nil { return nil, err } event.Raw = log diff --git a/contracts/bindings/IEigenDAServiceManager/binding.go b/contracts/bindings/IEigenDAServiceManager/binding.go index 4b76c678c2..a86f673f81 100644 --- a/contracts/bindings/IEigenDAServiceManager/binding.go +++ b/contracts/bindings/IEigenDAServiceManager/binding.go @@ -61,6 +61,21 @@ type IEigenDAServiceManagerBatchHeader struct { ReferenceBlockNumber uint32 } +// IPaymentCoordinatorRangePayment is an auto generated low-level Go binding around an user-defined struct. +type IPaymentCoordinatorRangePayment struct { + StrategiesAndMultipliers []IPaymentCoordinatorStrategyAndMultiplier + Token common.Address + Amount *big.Int + StartTimestamp uint32 + Duration uint32 +} + +// IPaymentCoordinatorStrategyAndMultiplier is an auto generated low-level Go binding around an user-defined struct. +type IPaymentCoordinatorStrategyAndMultiplier struct { + Strategy common.Address + Multiplier *big.Int +} + // ISignatureUtilsSignatureWithSaltAndExpiry is an auto generated low-level Go binding around an user-defined struct. type ISignatureUtilsSignatureWithSaltAndExpiry struct { Signature []byte @@ -70,7 +85,7 @@ type ISignatureUtilsSignatureWithSaltAndExpiry struct { // ContractIEigenDAServiceManagerMetaData contains all meta data concerning the ContractIEigenDAServiceManager contract. var ContractIEigenDAServiceManagerMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"function\",\"name\":\"BLOCK_STALE_MEASURE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"avsDirectory\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"batchIdToBatchMetadataHash\",\"inputs\":[{\"name\":\"batchId\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"confirmBatch\",\"inputs\":[{\"name\":\"batchHeader\",\"type\":\"tuple\",\"internalType\":\"structIEigenDAServiceManager.BatchHeader\",\"components\":[{\"name\":\"blobHeadersRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"signedStakeForQuorums\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"referenceBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"nonSignerStakesAndSignature\",\"type\":\"tuple\",\"internalType\":\"structIBLSSignatureChecker.NonSignerStakesAndSignature\",\"components\":[{\"name\":\"nonSignerQuorumBitmapIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"nonSignerPubkeys\",\"type\":\"tuple[]\",\"internalType\":\"structBN254.G1Point[]\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"quorumApks\",\"type\":\"tuple[]\",\"internalType\":\"structBN254.G1Point[]\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apkG2\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"sigma\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"quorumApkIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"totalStakeIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"nonSignerStakeIndices\",\"type\":\"uint32[][]\",\"internalType\":\"uint32[][]\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"deregisterOperatorFromAVS\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getOperatorRestakedStrategies\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getRestakeableStrategies\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"latestServeUntilBlock\",\"inputs\":[{\"name\":\"referenceBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"quorumAdversaryThresholdPercentages\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"quorumConfirmationThresholdPercentages\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"quorumNumbersRequired\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"registerOperatorToAVS\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSignature\",\"type\":\"tuple\",\"internalType\":\"structISignatureUtils.SignatureWithSaltAndExpiry\",\"components\":[{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setBatchConfirmer\",\"inputs\":[{\"name\":\"_batchConfirmer\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"taskNumber\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"updateAVSMetadataURI\",\"inputs\":[{\"name\":\"_metadataURI\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"BatchConfirmed\",\"inputs\":[{\"name\":\"batchHeaderHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"batchId\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"BatchConfirmerStatusChanged\",\"inputs\":[{\"name\":\"batchConfirmer\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"status\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false}]", + ABI: "[{\"type\":\"function\",\"name\":\"BLOCK_STALE_MEASURE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"avsDirectory\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"batchIdToBatchMetadataHash\",\"inputs\":[{\"name\":\"batchId\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"confirmBatch\",\"inputs\":[{\"name\":\"batchHeader\",\"type\":\"tuple\",\"internalType\":\"structIEigenDAServiceManager.BatchHeader\",\"components\":[{\"name\":\"blobHeadersRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"signedStakeForQuorums\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"referenceBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"nonSignerStakesAndSignature\",\"type\":\"tuple\",\"internalType\":\"structIBLSSignatureChecker.NonSignerStakesAndSignature\",\"components\":[{\"name\":\"nonSignerQuorumBitmapIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"nonSignerPubkeys\",\"type\":\"tuple[]\",\"internalType\":\"structBN254.G1Point[]\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"quorumApks\",\"type\":\"tuple[]\",\"internalType\":\"structBN254.G1Point[]\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apkG2\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"sigma\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"quorumApkIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"totalStakeIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"nonSignerStakeIndices\",\"type\":\"uint32[][]\",\"internalType\":\"uint32[][]\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"deregisterOperatorFromAVS\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getOperatorRestakedStrategies\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getRestakeableStrategies\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"latestServeUntilBlock\",\"inputs\":[{\"name\":\"referenceBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"payForRange\",\"inputs\":[{\"name\":\"rangePayments\",\"type\":\"tuple[]\",\"internalType\":\"structIPaymentCoordinator.RangePayment[]\",\"components\":[{\"name\":\"strategiesAndMultipliers\",\"type\":\"tuple[]\",\"internalType\":\"structIPaymentCoordinator.StrategyAndMultiplier[]\",\"components\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"multiplier\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"duration\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"quorumAdversaryThresholdPercentages\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"quorumConfirmationThresholdPercentages\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"quorumNumbersRequired\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"registerOperatorToAVS\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSignature\",\"type\":\"tuple\",\"internalType\":\"structISignatureUtils.SignatureWithSaltAndExpiry\",\"components\":[{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setBatchConfirmer\",\"inputs\":[{\"name\":\"_batchConfirmer\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"taskNumber\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"updateAVSMetadataURI\",\"inputs\":[{\"name\":\"_metadataURI\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"BatchConfirmed\",\"inputs\":[{\"name\":\"batchHeaderHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"batchId\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"BatchConfirmerStatusChanged\",\"inputs\":[{\"name\":\"batchConfirmer\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"status\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false}]", } // ContractIEigenDAServiceManagerABI is the input ABI used to generate the binding from. @@ -571,6 +586,27 @@ func (_ContractIEigenDAServiceManager *ContractIEigenDAServiceManagerTransactorS return _ContractIEigenDAServiceManager.Contract.DeregisterOperatorFromAVS(&_ContractIEigenDAServiceManager.TransactOpts, operator) } +// PayForRange is a paid mutator transaction binding the contract method 0x1b445516. +// +// Solidity: function payForRange(((address,uint96)[],address,uint256,uint32,uint32)[] rangePayments) returns() +func (_ContractIEigenDAServiceManager *ContractIEigenDAServiceManagerTransactor) PayForRange(opts *bind.TransactOpts, rangePayments []IPaymentCoordinatorRangePayment) (*types.Transaction, error) { + return _ContractIEigenDAServiceManager.contract.Transact(opts, "payForRange", rangePayments) +} + +// PayForRange is a paid mutator transaction binding the contract method 0x1b445516. +// +// Solidity: function payForRange(((address,uint96)[],address,uint256,uint32,uint32)[] rangePayments) returns() +func (_ContractIEigenDAServiceManager *ContractIEigenDAServiceManagerSession) PayForRange(rangePayments []IPaymentCoordinatorRangePayment) (*types.Transaction, error) { + return _ContractIEigenDAServiceManager.Contract.PayForRange(&_ContractIEigenDAServiceManager.TransactOpts, rangePayments) +} + +// PayForRange is a paid mutator transaction binding the contract method 0x1b445516. +// +// Solidity: function payForRange(((address,uint96)[],address,uint256,uint32,uint32)[] rangePayments) returns() +func (_ContractIEigenDAServiceManager *ContractIEigenDAServiceManagerTransactorSession) PayForRange(rangePayments []IPaymentCoordinatorRangePayment) (*types.Transaction, error) { + return _ContractIEigenDAServiceManager.Contract.PayForRange(&_ContractIEigenDAServiceManager.TransactOpts, rangePayments) +} + // RegisterOperatorToAVS is a paid mutator transaction binding the contract method 0x9926ee7d. // // Solidity: function registerOperatorToAVS(address operator, (bytes,bytes32,uint256) operatorSignature) returns() diff --git a/contracts/bindings/IndexRegistry/binding.go b/contracts/bindings/IndexRegistry/binding.go index d7c438c8d9..76d0de6509 100644 --- a/contracts/bindings/IndexRegistry/binding.go +++ b/contracts/bindings/IndexRegistry/binding.go @@ -44,7 +44,7 @@ type IIndexRegistryQuorumUpdate struct { // ContractIndexRegistryMetaData contains all meta data concerning the ContractIndexRegistry contract. var ContractIndexRegistryMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_registryCoordinator\",\"type\":\"address\",\"internalType\":\"contractIRegistryCoordinator\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"OPERATOR_DOES_NOT_EXIST_ID\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"currentOperatorIndex\",\"inputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"deregisterOperator\",\"inputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getLatestOperatorUpdate\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"operatorIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIIndexRegistry.OperatorUpdate\",\"components\":[{\"name\":\"fromBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getLatestQuorumUpdate\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIIndexRegistry.QuorumUpdate\",\"components\":[{\"name\":\"fromBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"numOperators\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorListAtBlockNumber\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"blockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorUpdateAtIndex\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"operatorIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"arrayIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIIndexRegistry.OperatorUpdate\",\"components\":[{\"name\":\"fromBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getQuorumUpdateAtIndex\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"quorumIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIIndexRegistry.QuorumUpdate\",\"components\":[{\"name\":\"fromBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"numOperators\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initializeQuorum\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"registerOperator\",\"inputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"registryCoordinator\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"totalOperatorsForQuorum\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"QuorumIndexUpdate\",\"inputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"},{\"name\":\"newOperatorIndex\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"}],\"anonymous\":false}]", - Bin: "0x60a060405234801561001057600080fd5b506040516113ec3803806113ec83398101604081905261002f9161010c565b6001600160a01b0381166080528061004561004c565b505061013c565b600054610100900460ff16156100b85760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561010a576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60006020828403121561011e57600080fd5b81516001600160a01b038116811461013557600080fd5b9392505050565b60805161128061016c60003960008181610142015281816102750152818161041b01526107ed01526112806000f3fe608060405234801561001057600080fd5b50600436106100b35760003560e01c8063890262451161007157806389026245146101b3578063a48bb0ac146101d3578063bd29b8cd146101e6578063caa3cd76146101f9578063e2e685801461020f578063f34109221461025557600080fd5b8062bff04d146100b857806312d1d74d146100e157806326d941f2146101155780632ed583e51461012a5780636d14a9871461013d5780638121906f1461017c575b600080fd5b6100cb6100c6366004610ec7565b610268565b6040516100d89190610f43565b60405180910390f35b6100f46100ef366004610fb7565b6103ca565b60408051825163ffffffff16815260209283015192810192909252016100d8565b610128610123366004610fea565b610410565b005b6100f4610138366004611005565b610534565b6101647f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100d8565b61018f61018a366004610fea565b6105ba565b60408051825163ffffffff90811682526020938401511692810192909252016100d8565b6101c66101c1366004610fb7565b610601565b6040516100d89190611048565b61018f6101e1366004610fb7565b61076b565b6101286101f4366004610ec7565b6107e2565b610201600081565b6040519081526020016100d8565b61024061021d366004611080565b600160209081526000928352604080842090915290825290205463ffffffff1681565b60405163ffffffff90911681526020016100d8565b610240610263366004610fea565b6108f0565b6060336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146102bb5760405162461bcd60e51b81526004016102b2906110aa565b60405180910390fd5b60008267ffffffffffffffff8111156102d6576102d661111d565b6040519080825280602002602001820160405280156102ff578160200160208202803683370190505b50905060005b838110156103bf57600085858381811061032157610321611133565b919091013560f81c60008181526003602052604090205490925090508061035a5760405162461bcd60e51b81526004016102b290611149565b60006103658361090f565b905061037c89846103776001856111b4565b610a08565b8085858151811061038f5761038f611133565b602002602001019063ffffffff16908163ffffffff168152505050505080806103b7906111d9565b915050610305565b5090505b9392505050565b60408051808201909152600080825260208201526103e88383610a92565b60408051808201909152815463ffffffff168152600190910154602082015290505b92915050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104585760405162461bcd60e51b81526004016102b2906110aa565b60ff8116600090815260036020526040902054156104d25760405162461bcd60e51b815260206004820152603160248201527f496e64657852656769737472792e63726561746551756f72756d3a2071756f72604482015270756d20616c72656164792065786973747360781b60648201526084016102b2565b60ff166000908152600360209081526040808320815180830190925263ffffffff438116835282840185815282546001810184559286529390942091519101805492518416600160201b0267ffffffffffffffff199093169190931617179055565b604080518082019091526000808252602082015260ff8416600090815260026020908152604080832063ffffffff8088168552925290912080549091841690811061058157610581611133565b600091825260209182902060408051808201909152600290920201805463ffffffff168252600101549181019190915290509392505050565b60408051808201909152600080825260208201526105d782610aea565b60408051808201909152905463ffffffff8082168352600160201b90910416602082015292915050565b6060600061060f8484610b2c565b905060008163ffffffff1667ffffffffffffffff8111156106325761063261111d565b60405190808252806020026020018201604052801561065b578160200160208202803683370190505b50905060005b8263ffffffff168110156107625761067a868287610c61565b82828151811061068c5761068c611133565b6020026020010181815250506000801b8282815181106106ae576106ae611133565b602002602001015114156107505760405162461bcd60e51b815260206004820152605d60248201527f496e64657852656769737472792e6765744f70657261746f724c69737441744260448201527f6c6f636b4e756d6265723a206f70657261746f7220646f6573206e6f7420657860648201527f6973742061742074686520676976656e20626c6f636b206e756d626572000000608482015260a4016102b2565b8061075a816111d9565b915050610661565b50949350505050565b604080518082019091526000808252602082015260ff83166000908152600360205260409020805463ffffffff84169081106107a9576107a9611133565b60009182526020918290206040805180820190915291015463ffffffff8082168352600160201b90910416918101919091529392505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461082a5760405162461bcd60e51b81526004016102b2906110aa565b60005b818110156108ea57600083838381811061084957610849611133565b919091013560f81c6000818152600360205260409020549092509050806108825760405162461bcd60e51b81526004016102b290611149565b60ff8216600090815260016020908152604080832089845290915281205463ffffffff16906108b084610d38565b905060006108be8583610d72565b90508089146108d2576108d2818685610a08565b505050505080806108e2906111d9565b91505061082d565b50505050565b60006108fb82610aea565b54600160201b900463ffffffff1692915050565b60008061091b83610aea565b805490915060009061093b90600160201b900463ffffffff1660016111f4565b9050610948848383610d9c565b60ff84166000908152600260205260408120906109666001846111b4565b63ffffffff1681526020810191909152604001600020546103c35760ff841660009081526002602052604081209061099f6001846111b4565b63ffffffff908116825260208083019390935260409182016000908120835180850190945243831684528385018281528154600180820184559284529590922093516002909502909301805463ffffffff19169490921693909317815591519101559392505050565b6000610a148383610a92565b9050610a2283838387610e3c565b60ff83166000818152600160209081526040808320888452825291829020805463ffffffff191663ffffffff871690811790915582519384529083015285917f6ee1e4f4075f3d067176140d34e87874244dd273294c05b2218133e49a2ba6f6910160405180910390a250505050565b60ff8216600090815260026020908152604080832063ffffffff851684529091528120805490610ac360018361121c565b81548110610ad357610ad3611133565b906000526020600020906002020191505092915050565b60ff81166000908152600360205260408120805490610b0a60018361121c565b81548110610b1a57610b1a611133565b90600052602060002001915050919050565b60ff8216600090815260036020526040812054805b8015610bd45760ff85166000908152600360205260408120610b6460018461121c565b81548110610b7457610b74611133565b60009182526020918290206040805180820190915291015463ffffffff808216808452600160201b90920481169383019390935290925090861610610bc15760200151925061040a915050565b5080610bcc81611233565b915050610b41565b5060405162461bcd60e51b815260206004820152605560248201527f496e64657852656769737472792e5f6f70657261746f72436f756e744174426c60448201527f6f636b4e756d6265723a2071756f72756d20646964206e6f742065786973742060648201527430ba1033b4bb32b710313637b1b590373ab6b132b960591b608482015260a4016102b2565b60ff8316600090815260026020908152604080832063ffffffff86168452909152812054805b8015610d2c5760ff8616600090815260026020908152604080832063ffffffff891684529091528120610cbb60018461121c565b81548110610ccb57610ccb611133565b600091825260209182902060408051808201909152600290920201805463ffffffff9081168084526001909201549383019390935290925090861610610d19576020015192506103c3915050565b5080610d2481611233565b915050610c87565b50600095945050505050565b600080610d4483610aea565b8054909150600090610d6590600190600160201b900463ffffffff166111b4565b90506103c3848383610d9c565b600080610d7f8484610a92565b6001810154909150610d948585846000610e3c565b949350505050565b81544363ffffffff90811691161415610dd357815463ffffffff8216600160201b0267ffffffff0000000019909116178255505050565b60ff83166000908152600360209081526040808320815180830190925263ffffffff438116835285811683850190815282546001810184559286529390942091519101805492518416600160201b0267ffffffffffffffff199093169190931617179055505050565b81544363ffffffff90811691161415610e5b57600182018190556108ea565b60ff93909316600090815260026020818152604080842063ffffffff968716855282528084208151808301909252438716825281830197885280546001808201835591865292909420905191909202909101805463ffffffff1916919094161783559251919092015550565b600080600060408486031215610edc57600080fd5b83359250602084013567ffffffffffffffff80821115610efb57600080fd5b818601915086601f830112610f0f57600080fd5b813581811115610f1e57600080fd5b876020828501011115610f3057600080fd5b6020830194508093505050509250925092565b6020808252825182820181905260009190848201906040850190845b81811015610f8157835163ffffffff1683529284019291840191600101610f5f565b50909695505050505050565b803560ff81168114610f9e57600080fd5b919050565b803563ffffffff81168114610f9e57600080fd5b60008060408385031215610fca57600080fd5b610fd383610f8d565b9150610fe160208401610fa3565b90509250929050565b600060208284031215610ffc57600080fd5b6103c382610f8d565b60008060006060848603121561101a57600080fd5b61102384610f8d565b925061103160208501610fa3565b915061103f60408501610fa3565b90509250925092565b6020808252825182820181905260009190848201906040850190845b81811015610f8157835183529284019291840191600101611064565b6000806040838503121561109357600080fd5b61109c83610f8d565b946020939093013593505050565b6020808252604d908201527f496e64657852656769737472792e6f6e6c795265676973747279436f6f72646960408201527f6e61746f723a2063616c6c6572206973206e6f7420746865207265676973747260608201526c3c9031b7b7b93234b730ba37b960991b608082015260a00190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60208082526035908201527f496e64657852656769737472792e72656769737465724f70657261746f723a206040820152741c5d5bdc9d5b48191bd95cc81b9bdd08195e1a5cdd605a1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b600063ffffffff838116908316818110156111d1576111d161119e565b039392505050565b60006000198214156111ed576111ed61119e565b5060010190565b600063ffffffff8083168185168083038211156112135761121361119e565b01949350505050565b60008282101561122e5761122e61119e565b500390565b6000816112425761124261119e565b50600019019056fea26469706673582212209f837c173fa445d7cf0c4382d713a2c74365e0d714862711492998b3dc6eef2b64736f6c634300080c0033", + Bin: "0x60a060405234801561001057600080fd5b506040516113ec3803806113ec83398101604081905261002f9161010c565b6001600160a01b0381166080528061004561004c565b505061013c565b600054610100900460ff16156100b85760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561010a576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60006020828403121561011e57600080fd5b81516001600160a01b038116811461013557600080fd5b9392505050565b60805161128061016c60003960008181610142015281816102750152818161041b01526107ed01526112806000f3fe608060405234801561001057600080fd5b50600436106100b35760003560e01c8063890262451161007157806389026245146101b3578063a48bb0ac146101d3578063bd29b8cd146101e6578063caa3cd76146101f9578063e2e685801461020f578063f34109221461025557600080fd5b8062bff04d146100b857806312d1d74d146100e157806326d941f2146101155780632ed583e51461012a5780636d14a9871461013d5780638121906f1461017c575b600080fd5b6100cb6100c6366004610ec7565b610268565b6040516100d89190610f43565b60405180910390f35b6100f46100ef366004610fb7565b6103ca565b60408051825163ffffffff16815260209283015192810192909252016100d8565b610128610123366004610fea565b610410565b005b6100f4610138366004611005565b610534565b6101647f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100d8565b61018f61018a366004610fea565b6105ba565b60408051825163ffffffff90811682526020938401511692810192909252016100d8565b6101c66101c1366004610fb7565b610601565b6040516100d89190611048565b61018f6101e1366004610fb7565b61076b565b6101286101f4366004610ec7565b6107e2565b610201600081565b6040519081526020016100d8565b61024061021d366004611080565b600160209081526000928352604080842090915290825290205463ffffffff1681565b60405163ffffffff90911681526020016100d8565b610240610263366004610fea565b6108f0565b6060336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146102bb5760405162461bcd60e51b81526004016102b2906110aa565b60405180910390fd5b60008267ffffffffffffffff8111156102d6576102d661111d565b6040519080825280602002602001820160405280156102ff578160200160208202803683370190505b50905060005b838110156103bf57600085858381811061032157610321611133565b919091013560f81c60008181526003602052604090205490925090508061035a5760405162461bcd60e51b81526004016102b290611149565b60006103658361090f565b905061037c89846103776001856111b4565b610a08565b8085858151811061038f5761038f611133565b602002602001019063ffffffff16908163ffffffff168152505050505080806103b7906111d9565b915050610305565b5090505b9392505050565b60408051808201909152600080825260208201526103e88383610a92565b60408051808201909152815463ffffffff168152600190910154602082015290505b92915050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104585760405162461bcd60e51b81526004016102b2906110aa565b60ff8116600090815260036020526040902054156104d25760405162461bcd60e51b815260206004820152603160248201527f496e64657852656769737472792e63726561746551756f72756d3a2071756f72604482015270756d20616c72656164792065786973747360781b60648201526084016102b2565b60ff166000908152600360209081526040808320815180830190925263ffffffff438116835282840185815282546001810184559286529390942091519101805492518416600160201b0267ffffffffffffffff199093169190931617179055565b604080518082019091526000808252602082015260ff8416600090815260026020908152604080832063ffffffff8088168552925290912080549091841690811061058157610581611133565b600091825260209182902060408051808201909152600290920201805463ffffffff168252600101549181019190915290509392505050565b60408051808201909152600080825260208201526105d782610aea565b60408051808201909152905463ffffffff8082168352600160201b90910416602082015292915050565b6060600061060f8484610b2c565b905060008163ffffffff1667ffffffffffffffff8111156106325761063261111d565b60405190808252806020026020018201604052801561065b578160200160208202803683370190505b50905060005b8263ffffffff168110156107625761067a868287610c61565b82828151811061068c5761068c611133565b6020026020010181815250506000801b8282815181106106ae576106ae611133565b602002602001015114156107505760405162461bcd60e51b815260206004820152605d60248201527f496e64657852656769737472792e6765744f70657261746f724c69737441744260448201527f6c6f636b4e756d6265723a206f70657261746f7220646f6573206e6f7420657860648201527f6973742061742074686520676976656e20626c6f636b206e756d626572000000608482015260a4016102b2565b8061075a816111d9565b915050610661565b50949350505050565b604080518082019091526000808252602082015260ff83166000908152600360205260409020805463ffffffff84169081106107a9576107a9611133565b60009182526020918290206040805180820190915291015463ffffffff8082168352600160201b90910416918101919091529392505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461082a5760405162461bcd60e51b81526004016102b2906110aa565b60005b818110156108ea57600083838381811061084957610849611133565b919091013560f81c6000818152600360205260409020549092509050806108825760405162461bcd60e51b81526004016102b290611149565b60ff8216600090815260016020908152604080832089845290915281205463ffffffff16906108b084610d38565b905060006108be8583610d72565b90508089146108d2576108d2818685610a08565b505050505080806108e2906111d9565b91505061082d565b50505050565b60006108fb82610aea565b54600160201b900463ffffffff1692915050565b60008061091b83610aea565b805490915060009061093b90600160201b900463ffffffff1660016111f4565b9050610948848383610d9c565b60ff84166000908152600260205260408120906109666001846111b4565b63ffffffff1681526020810191909152604001600020546103c35760ff841660009081526002602052604081209061099f6001846111b4565b63ffffffff908116825260208083019390935260409182016000908120835180850190945243831684528385018281528154600180820184559284529590922093516002909502909301805463ffffffff19169490921693909317815591519101559392505050565b6000610a148383610a92565b9050610a2283838387610e3c565b60ff83166000818152600160209081526040808320888452825291829020805463ffffffff191663ffffffff871690811790915582519384529083015285917f6ee1e4f4075f3d067176140d34e87874244dd273294c05b2218133e49a2ba6f6910160405180910390a250505050565b60ff8216600090815260026020908152604080832063ffffffff851684529091528120805490610ac360018361121c565b81548110610ad357610ad3611133565b906000526020600020906002020191505092915050565b60ff81166000908152600360205260408120805490610b0a60018361121c565b81548110610b1a57610b1a611133565b90600052602060002001915050919050565b60ff8216600090815260036020526040812054805b8015610bd45760ff85166000908152600360205260408120610b6460018461121c565b81548110610b7457610b74611133565b60009182526020918290206040805180820190915291015463ffffffff808216808452600160201b90920481169383019390935290925090861610610bc15760200151925061040a915050565b5080610bcc81611233565b915050610b41565b5060405162461bcd60e51b815260206004820152605560248201527f496e64657852656769737472792e5f6f70657261746f72436f756e744174426c60448201527f6f636b4e756d6265723a2071756f72756d20646964206e6f742065786973742060648201527430ba1033b4bb32b710313637b1b590373ab6b132b960591b608482015260a4016102b2565b60ff8316600090815260026020908152604080832063ffffffff86168452909152812054805b8015610d2c5760ff8616600090815260026020908152604080832063ffffffff891684529091528120610cbb60018461121c565b81548110610ccb57610ccb611133565b600091825260209182902060408051808201909152600290920201805463ffffffff9081168084526001909201549383019390935290925090861610610d19576020015192506103c3915050565b5080610d2481611233565b915050610c87565b50600095945050505050565b600080610d4483610aea565b8054909150600090610d6590600190600160201b900463ffffffff166111b4565b90506103c3848383610d9c565b600080610d7f8484610a92565b6001810154909150610d948585846000610e3c565b949350505050565b81544363ffffffff90811691161415610dd357815463ffffffff8216600160201b0267ffffffff0000000019909116178255505050565b60ff83166000908152600360209081526040808320815180830190925263ffffffff438116835285811683850190815282546001810184559286529390942091519101805492518416600160201b0267ffffffffffffffff199093169190931617179055505050565b81544363ffffffff90811691161415610e5b57600182018190556108ea565b60ff93909316600090815260026020818152604080842063ffffffff968716855282528084208151808301909252438716825281830197885280546001808201835591865292909420905191909202909101805463ffffffff1916919094161783559251919092015550565b600080600060408486031215610edc57600080fd5b83359250602084013567ffffffffffffffff80821115610efb57600080fd5b818601915086601f830112610f0f57600080fd5b813581811115610f1e57600080fd5b876020828501011115610f3057600080fd5b6020830194508093505050509250925092565b6020808252825182820181905260009190848201906040850190845b81811015610f8157835163ffffffff1683529284019291840191600101610f5f565b50909695505050505050565b803560ff81168114610f9e57600080fd5b919050565b803563ffffffff81168114610f9e57600080fd5b60008060408385031215610fca57600080fd5b610fd383610f8d565b9150610fe160208401610fa3565b90509250929050565b600060208284031215610ffc57600080fd5b6103c382610f8d565b60008060006060848603121561101a57600080fd5b61102384610f8d565b925061103160208501610fa3565b915061103f60408501610fa3565b90509250925092565b6020808252825182820181905260009190848201906040850190845b81811015610f8157835183529284019291840191600101611064565b6000806040838503121561109357600080fd5b61109c83610f8d565b946020939093013593505050565b6020808252604d908201527f496e64657852656769737472792e6f6e6c795265676973747279436f6f72646960408201527f6e61746f723a2063616c6c6572206973206e6f7420746865207265676973747260608201526c3c9031b7b7b93234b730ba37b960991b608082015260a00190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60208082526035908201527f496e64657852656769737472792e72656769737465724f70657261746f723a206040820152741c5d5bdc9d5b48191bd95cc81b9bdd08195e1a5cdd605a1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b600063ffffffff838116908316818110156111d1576111d161119e565b039392505050565b60006000198214156111ed576111ed61119e565b5060010190565b600063ffffffff8083168185168083038211156112135761121361119e565b01949350505050565b60008282101561122e5761122e61119e565b500390565b6000816112425761124261119e565b50600019019056fea2646970667358221220bf833926b43e697cc2175bdcaae425fe448c9d9aaf095c5293b8ea13c7128c5064736f6c634300080c0033", } // ContractIndexRegistryABI is the input ABI used to generate the binding from. diff --git a/contracts/bindings/MockRollup/binding.go b/contracts/bindings/MockRollup/binding.go index d5a9378071..42438a2316 100644 --- a/contracts/bindings/MockRollup/binding.go +++ b/contracts/bindings/MockRollup/binding.go @@ -83,7 +83,7 @@ type IEigenDAServiceManagerQuorumBlobParam struct { // ContractMockRollupMetaData contains all meta data concerning the ContractMockRollup contract. var ContractMockRollupMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_eigenDAServiceManager\",\"type\":\"address\",\"internalType\":\"contractIEigenDAServiceManager\"},{\"name\":\"_tau\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"challengeCommitment\",\"inputs\":[{\"name\":\"timestamp\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"point\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"proof\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"challengeValue\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"commitments\",\"inputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"confirmer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"dataLength\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"polynomialCommitment\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"eigenDAServiceManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIEigenDAServiceManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"postCommitment\",\"inputs\":[{\"name\":\"blobHeader\",\"type\":\"tuple\",\"internalType\":\"structIEigenDAServiceManager.BlobHeader\",\"components\":[{\"name\":\"commitment\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"dataLength\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"quorumBlobParams\",\"type\":\"tuple[]\",\"internalType\":\"structIEigenDAServiceManager.QuorumBlobParam[]\",\"components\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"adversaryThresholdPercentage\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"confirmationThresholdPercentage\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"chunkLength\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}]},{\"name\":\"blobVerificationProof\",\"type\":\"tuple\",\"internalType\":\"structEigenDARollupUtils.BlobVerificationProof\",\"components\":[{\"name\":\"batchId\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"blobIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"batchMetadata\",\"type\":\"tuple\",\"internalType\":\"structIEigenDAServiceManager.BatchMetadata\",\"components\":[{\"name\":\"batchHeader\",\"type\":\"tuple\",\"internalType\":\"structIEigenDAServiceManager.BatchHeader\",\"components\":[{\"name\":\"blobHeadersRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"signedStakeForQuorums\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"referenceBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"signatoryRecordHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"confirmationBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"inclusionProof\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"quorumIndices\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"tau\",\"inputs\":[],\"outputs\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"}]", - Bin: "0x608060405234801561001057600080fd5b5060405161140e38038061140e83398101604081905261002f91610061565b600080546001600160a01b0319166001600160a01b0393909316929092179091558051600155602001516002556100ef565b600080828403606081121561007557600080fd5b83516001600160a01b038116811461008c57600080fd5b92506040601f19820112156100a057600080fd5b50604080519081016001600160401b03811182821017156100d157634e487b7160e01b600052604160045260246000fd5b60409081526020858101518352940151938101939093525092909150565b611310806100fe6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c806349ce89971461005c578063b5144c73146100cf578063cfc4af55146100e4578063d2d16eb214610107578063fc30cad01461012a575b600080fd5b6100b761006a366004610aab565b6003602090815260009182526040918290208054835180850190945260018201548452600290910154918301919091526001600160a01b03811691600160a01b90910463ffffffff169083565b6040516100c693929190610ac4565b60405180910390f35b6100e26100dd366004610ded565b610155565b005b6001546002546100f2919082565b604080519283526020830191909152016100c6565b61011a610115366004610fca565b6102d3565b60405190151581526020016100c6565b60005461013d906001600160a01b031681565b6040516001600160a01b0390911681526020016100c6565b426000908152600360205260409020546001600160a01b0316156101dd5760405162461bcd60e51b815260206004820152603460248201527f4d6f636b526f6c6c75702e706f7374436f6d6d69746d656e743a20436f6d6d696044820152731d1b595b9d08185b1c9958591e481c1bdcdd195960621b60648201526084015b60405180910390fd5b60005460405163219460e160e21b815273__$32f04d18c688c2c57b0347c20a77f3d6c9$__916386518384916102259186916001600160a01b03909116908690600401611158565b60006040518083038186803b15801561023d57600080fd5b505af4158015610251573d6000803e3d6000fd5b50506040805160608101825233815260208681015163ffffffff90811682840190815297518385019081524260009081526003845294909420925183549851909116600160a01b026001600160c01b03199098166001600160a01b03919091161796909617815590518051600183015590940151600290940193909355505050565b6000848152600360209081526040808320815160608101835281546001600160a01b038082168352600160a01b90910463ffffffff168286015283518085018552600184015481526002909301549483019490945291820152805190911661039b5760405162461bcd60e51b815260206004820152603560248201527f4d6f636b526f6c6c75702e6368616c6c656e6765436f6d6d69746d656e743a2060448201527410dbdb5b5a5d1b595b9d081b9bdd081c1bdcdd1959605a1b60648201526084016101d4565b806020015163ffffffff1685106104265760405162461bcd60e51b815260206004820152604360248201527f4d6f636b526f6c6c75702e6368616c6c656e6765436f6d6d69746d656e743a2060448201527f506f696e74206d757374206265206c657373207468616e2064617461206c656e6064820152620cee8d60eb1b608482015260a4016101d4565b604080518082018252600154815260025460208201529082015161044f9187918691908861045b565b9150505b949350505050565b60008061049261048d604080518082018252600080825260209182015281518083019092526001825260029082015290565b6104d8565b90506104cd6104ab6104a4838a610597565b879061062e565b846104c06104b9858b610597565b889061062e565b6104c86106c2565b610782565b979650505050505050565b604080518082019091526000808252602082015281511580156104fd57506020820151155b1561051b575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516105609190611223565b61058a907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4761125b565b905292915050565b919050565b60408051808201909152600080825260208201526105b36109ef565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa90508080156105e6576105e8565bfe5b50806106265760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b60448201526064016101d4565b505092915050565b604080518082019091526000808252602082015261064a610a0d565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa90508080156105e65750806106265760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b60448201526064016101d4565b6106ca610a2b565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b6040805180820182528581526020808201859052825180840190935285835282018390526000916107b1610a50565b60005b60028110156109765760006107ca826006611288565b90508482600281106107de576107de611272565b602002015151836107f08360006112a7565b600c811061080057610800611272565b602002015284826002811061081757610817611272565b6020020151602001518382600161082e91906112a7565b600c811061083e5761083e611272565b602002015283826002811061085557610855611272565b60200201515151836108688360026112a7565b600c811061087857610878611272565b602002015283826002811061088f5761088f611272565b60200201515160016020020151836108a88360036112a7565b600c81106108b8576108b8611272565b60200201528382600281106108cf576108cf611272565b6020020151602001516000600281106108ea576108ea611272565b6020020151836108fb8360046112a7565b600c811061090b5761090b611272565b602002015283826002811061092257610922611272565b60200201516020015160016002811061093d5761093d611272565b60200201518361094e8360056112a7565b600c811061095e5761095e611272565b6020020152508061096e816112bf565b9150506107b4565b5061097f610a6f565b60006020826101808560086107d05a03fa90508080156105e65750806109df5760405162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b60448201526064016101d4565b5051151598975050505050505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b6040518060400160405280610a3e610a8d565b8152602001610a4b610a8d565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b600060208284031215610abd57600080fd5b5035919050565b6001600160a01b038416815263ffffffff8316602082015260808101610453604083018480518252602090810151910152565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715610b3057610b30610af7565b60405290565b6040516080810167ffffffffffffffff81118282101715610b3057610b30610af7565b60405160a0810167ffffffffffffffff81118282101715610b3057610b30610af7565b6040805190810167ffffffffffffffff81118282101715610b3057610b30610af7565b604051601f8201601f1916810167ffffffffffffffff81118282101715610bc857610bc8610af7565b604052919050565b803563ffffffff8116811461059257600080fd5b803560ff8116811461059257600080fd5b600082601f830112610c0657600080fd5b813567ffffffffffffffff811115610c2057610c20610af7565b610c33601f8201601f1916602001610b9f565b818152846020838601011115610c4857600080fd5b816020850160208301376000918101602001919091529392505050565b600060608284031215610c7757600080fd5b610c7f610b0d565b9050813567ffffffffffffffff80821115610c9957600080fd5b9083019060808286031215610cad57600080fd5b610cb5610b36565b82358152602083013582811115610ccb57600080fd5b610cd787828601610bf5565b602083015250604083013582811115610cef57600080fd5b610cfb87828601610bf5565b604083015250610d0d60608401610bd0565b60608201528352505060208281013590820152610d2c60408301610bd0565b604082015292915050565b600060a08284031215610d4957600080fd5b610d51610b59565b9050610d5c82610bd0565b8152610d6a60208301610bd0565b6020820152604082013567ffffffffffffffff80821115610d8a57600080fd5b610d9685838601610c65565b60408401526060840135915080821115610daf57600080fd5b610dbb85838601610bf5565b60608401526080840135915080821115610dd457600080fd5b50610de184828501610bf5565b60808301525092915050565b6000806040808486031215610e0157600080fd5b833567ffffffffffffffff80821115610e1957600080fd5b90850190818703608080821215610e2f57600080fd5b610e37610b0d565b85831215610e4457600080fd5b610e4c610b7c565b92508435835260208086013581850152838252610e6a878701610bd0565b81830152606093508386013585811115610e8357600080fd5b8087019650508a601f870112610e9857600080fd5b853585811115610eaa57610eaa610af7565b610eb8828260051b01610b9f565b81815260079190911b8701820190828101908d831115610ed757600080fd5b978301975b82891015610f435785898f031215610ef45760008081fd5b610efc610b36565b610f058a610be4565b8152610f12858b01610be4565b85820152610f218b8b01610be4565b8b820152610f30888b01610bd0565b8189015282529785019790830190610edc565b98840198909852509097508801359450505080831115610f6257600080fd5b5050610f7085828601610d37565b9150509250929050565b600082601f830112610f8b57600080fd5b610f93610b7c565b806040840185811115610fa557600080fd5b845b81811015610fbf578035845260209384019301610fa7565b509095945050505050565b60008060008084860360e0811215610fe157600080fd5b85359450602086013593506080603f1982011215610ffe57600080fd5b50611007610b7c565b6110148760408801610f7a565b81526110238760808801610f7a565b60208201529396929550929360c00135925050565b6000815180845260005b8181101561105e57602081850181015186830182015201611042565b81811115611070576000602083870101525b50601f01601f19169290920160200192915050565b600063ffffffff808351168452806020840151166020850152604083015160a060408601528051606060a08701528051610100870152602081015160806101208801526110d6610180880182611038565b9050604082015160ff19888303016101408901526110f48282611038565b91505083606083015116610160880152602083015160c08801528360408401511660e08801526060860151935086810360608801526111338185611038565b93505050506080830151848203608086015261114f8282611038565b95945050505050565b6060808252845180518383015260200151608083015260009060e0830160208088015163ffffffff80821660a088015260409150818a015160808060c08a01528582518088526101008b0191508684019750600093505b808410156111f2578751805160ff9081168452888201518116898501528782015116878401528901518516898301529686019660019390930192908201906111af565b506001600160a01b038c168a870152898103858b0152611212818c611085565b9d9c50505050505050505050505050565b60008261124057634e487b7160e01b600052601260045260246000fd5b500690565b634e487b7160e01b600052601160045260246000fd5b60008282101561126d5761126d611245565b500390565b634e487b7160e01b600052603260045260246000fd5b60008160001904831182151516156112a2576112a2611245565b500290565b600082198211156112ba576112ba611245565b500190565b60006000198214156112d3576112d3611245565b506001019056fea2646970667358221220b0522ae0e7a75e85a339a25d3e6121a2f427f0d165faec6a87269f4843c48d2064736f6c634300080c0033", + Bin: "0x608060405234801561001057600080fd5b5060405161140e38038061140e83398101604081905261002f91610061565b600080546001600160a01b0319166001600160a01b0393909316929092179091558051600155602001516002556100ef565b600080828403606081121561007557600080fd5b83516001600160a01b038116811461008c57600080fd5b92506040601f19820112156100a057600080fd5b50604080519081016001600160401b03811182821017156100d157634e487b7160e01b600052604160045260246000fd5b60409081526020858101518352940151938101939093525092909150565b611310806100fe6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c806349ce89971461005c578063b5144c73146100cf578063cfc4af55146100e4578063d2d16eb214610107578063fc30cad01461012a575b600080fd5b6100b761006a366004610aab565b6003602090815260009182526040918290208054835180850190945260018201548452600290910154918301919091526001600160a01b03811691600160a01b90910463ffffffff169083565b6040516100c693929190610ac4565b60405180910390f35b6100e26100dd366004610ded565b610155565b005b6001546002546100f2919082565b604080519283526020830191909152016100c6565b61011a610115366004610fca565b6102d3565b60405190151581526020016100c6565b60005461013d906001600160a01b031681565b6040516001600160a01b0390911681526020016100c6565b426000908152600360205260409020546001600160a01b0316156101dd5760405162461bcd60e51b815260206004820152603460248201527f4d6f636b526f6c6c75702e706f7374436f6d6d69746d656e743a20436f6d6d696044820152731d1b595b9d08185b1c9958591e481c1bdcdd195960621b60648201526084015b60405180910390fd5b60005460405163219460e160e21b815273__$32f04d18c688c2c57b0347c20a77f3d6c9$__916386518384916102259186916001600160a01b03909116908690600401611158565b60006040518083038186803b15801561023d57600080fd5b505af4158015610251573d6000803e3d6000fd5b50506040805160608101825233815260208681015163ffffffff90811682840190815297518385019081524260009081526003845294909420925183549851909116600160a01b026001600160c01b03199098166001600160a01b03919091161796909617815590518051600183015590940151600290940193909355505050565b6000848152600360209081526040808320815160608101835281546001600160a01b038082168352600160a01b90910463ffffffff168286015283518085018552600184015481526002909301549483019490945291820152805190911661039b5760405162461bcd60e51b815260206004820152603560248201527f4d6f636b526f6c6c75702e6368616c6c656e6765436f6d6d69746d656e743a2060448201527410dbdb5b5a5d1b595b9d081b9bdd081c1bdcdd1959605a1b60648201526084016101d4565b806020015163ffffffff1685106104265760405162461bcd60e51b815260206004820152604360248201527f4d6f636b526f6c6c75702e6368616c6c656e6765436f6d6d69746d656e743a2060448201527f506f696e74206d757374206265206c657373207468616e2064617461206c656e6064820152620cee8d60eb1b608482015260a4016101d4565b604080518082018252600154815260025460208201529082015161044f9187918691908861045b565b9150505b949350505050565b60008061049261048d604080518082018252600080825260209182015281518083019092526001825260029082015290565b6104d8565b90506104cd6104ab6104a4838a610597565b879061062e565b846104c06104b9858b610597565b889061062e565b6104c86106c2565b610782565b979650505050505050565b604080518082019091526000808252602082015281511580156104fd57506020820151155b1561051b575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516105609190611223565b61058a907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4761125b565b905292915050565b919050565b60408051808201909152600080825260208201526105b36109ef565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa90508080156105e6576105e8565bfe5b50806106265760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b60448201526064016101d4565b505092915050565b604080518082019091526000808252602082015261064a610a0d565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa90508080156105e65750806106265760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b60448201526064016101d4565b6106ca610a2b565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b6040805180820182528581526020808201859052825180840190935285835282018390526000916107b1610a50565b60005b60028110156109765760006107ca826006611288565b90508482600281106107de576107de611272565b602002015151836107f08360006112a7565b600c811061080057610800611272565b602002015284826002811061081757610817611272565b6020020151602001518382600161082e91906112a7565b600c811061083e5761083e611272565b602002015283826002811061085557610855611272565b60200201515151836108688360026112a7565b600c811061087857610878611272565b602002015283826002811061088f5761088f611272565b60200201515160016020020151836108a88360036112a7565b600c81106108b8576108b8611272565b60200201528382600281106108cf576108cf611272565b6020020151602001516000600281106108ea576108ea611272565b6020020151836108fb8360046112a7565b600c811061090b5761090b611272565b602002015283826002811061092257610922611272565b60200201516020015160016002811061093d5761093d611272565b60200201518361094e8360056112a7565b600c811061095e5761095e611272565b6020020152508061096e816112bf565b9150506107b4565b5061097f610a6f565b60006020826101808560086107d05a03fa90508080156105e65750806109df5760405162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b60448201526064016101d4565b5051151598975050505050505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b6040518060400160405280610a3e610a8d565b8152602001610a4b610a8d565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b600060208284031215610abd57600080fd5b5035919050565b6001600160a01b038416815263ffffffff8316602082015260808101610453604083018480518252602090810151910152565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715610b3057610b30610af7565b60405290565b6040516080810167ffffffffffffffff81118282101715610b3057610b30610af7565b60405160a0810167ffffffffffffffff81118282101715610b3057610b30610af7565b6040805190810167ffffffffffffffff81118282101715610b3057610b30610af7565b604051601f8201601f1916810167ffffffffffffffff81118282101715610bc857610bc8610af7565b604052919050565b803563ffffffff8116811461059257600080fd5b803560ff8116811461059257600080fd5b600082601f830112610c0657600080fd5b813567ffffffffffffffff811115610c2057610c20610af7565b610c33601f8201601f1916602001610b9f565b818152846020838601011115610c4857600080fd5b816020850160208301376000918101602001919091529392505050565b600060608284031215610c7757600080fd5b610c7f610b0d565b9050813567ffffffffffffffff80821115610c9957600080fd5b9083019060808286031215610cad57600080fd5b610cb5610b36565b82358152602083013582811115610ccb57600080fd5b610cd787828601610bf5565b602083015250604083013582811115610cef57600080fd5b610cfb87828601610bf5565b604083015250610d0d60608401610bd0565b60608201528352505060208281013590820152610d2c60408301610bd0565b604082015292915050565b600060a08284031215610d4957600080fd5b610d51610b59565b9050610d5c82610bd0565b8152610d6a60208301610bd0565b6020820152604082013567ffffffffffffffff80821115610d8a57600080fd5b610d9685838601610c65565b60408401526060840135915080821115610daf57600080fd5b610dbb85838601610bf5565b60608401526080840135915080821115610dd457600080fd5b50610de184828501610bf5565b60808301525092915050565b6000806040808486031215610e0157600080fd5b833567ffffffffffffffff80821115610e1957600080fd5b90850190818703608080821215610e2f57600080fd5b610e37610b0d565b85831215610e4457600080fd5b610e4c610b7c565b92508435835260208086013581850152838252610e6a878701610bd0565b81830152606093508386013585811115610e8357600080fd5b8087019650508a601f870112610e9857600080fd5b853585811115610eaa57610eaa610af7565b610eb8828260051b01610b9f565b81815260079190911b8701820190828101908d831115610ed757600080fd5b978301975b82891015610f435785898f031215610ef45760008081fd5b610efc610b36565b610f058a610be4565b8152610f12858b01610be4565b85820152610f218b8b01610be4565b8b820152610f30888b01610bd0565b8189015282529785019790830190610edc565b98840198909852509097508801359450505080831115610f6257600080fd5b5050610f7085828601610d37565b9150509250929050565b600082601f830112610f8b57600080fd5b610f93610b7c565b806040840185811115610fa557600080fd5b845b81811015610fbf578035845260209384019301610fa7565b509095945050505050565b60008060008084860360e0811215610fe157600080fd5b85359450602086013593506080603f1982011215610ffe57600080fd5b50611007610b7c565b6110148760408801610f7a565b81526110238760808801610f7a565b60208201529396929550929360c00135925050565b6000815180845260005b8181101561105e57602081850181015186830182015201611042565b81811115611070576000602083870101525b50601f01601f19169290920160200192915050565b600063ffffffff808351168452806020840151166020850152604083015160a060408601528051606060a08701528051610100870152602081015160806101208801526110d6610180880182611038565b9050604082015160ff19888303016101408901526110f48282611038565b91505083606083015116610160880152602083015160c08801528360408401511660e08801526060860151935086810360608801526111338185611038565b93505050506080830151848203608086015261114f8282611038565b95945050505050565b6060808252845180518383015260200151608083015260009060e0830160208088015163ffffffff80821660a088015260409150818a015160808060c08a01528582518088526101008b0191508684019750600093505b808410156111f2578751805160ff9081168452888201518116898501528782015116878401528901518516898301529686019660019390930192908201906111af565b506001600160a01b038c168a870152898103858b0152611212818c611085565b9d9c50505050505050505050505050565b60008261124057634e487b7160e01b600052601260045260246000fd5b500690565b634e487b7160e01b600052601160045260246000fd5b60008282101561126d5761126d611245565b500390565b634e487b7160e01b600052603260045260246000fd5b60008160001904831182151516156112a2576112a2611245565b500290565b600082198211156112ba576112ba611245565b500190565b60006000198214156112d3576112d3611245565b506001019056fea26469706673582212209015439367c126f1735ab0fe39695dc5fb7e7f76cfb2530c4b5ce7df242af0f764736f6c634300080c0033", } // ContractMockRollupABI is the input ABI used to generate the binding from. diff --git a/contracts/bindings/OperatorStateRetriever/binding.go b/contracts/bindings/OperatorStateRetriever/binding.go index d1b7ccbd6e..88fcc847ca 100644 --- a/contracts/bindings/OperatorStateRetriever/binding.go +++ b/contracts/bindings/OperatorStateRetriever/binding.go @@ -46,8 +46,8 @@ type OperatorStateRetrieverOperator struct { // ContractOperatorStateRetrieverMetaData contains all meta data concerning the ContractOperatorStateRetriever contract. var ContractOperatorStateRetrieverMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"function\",\"name\":\"getCheckSignaturesIndices\",\"inputs\":[{\"name\":\"registryCoordinator\",\"type\":\"address\",\"internalType\":\"contractIRegistryCoordinator\"},{\"name\":\"referenceBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"nonSignerOperatorIds\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structOperatorStateRetriever.CheckSignaturesIndices\",\"components\":[{\"name\":\"nonSignerQuorumBitmapIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"quorumApkIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"totalStakeIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"nonSignerStakeIndices\",\"type\":\"uint32[][]\",\"internalType\":\"uint32[][]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorState\",\"inputs\":[{\"name\":\"registryCoordinator\",\"type\":\"address\",\"internalType\":\"contractIRegistryCoordinator\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"blockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple[][]\",\"internalType\":\"structOperatorStateRetriever.Operator[][]\",\"components\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"stake\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorState\",\"inputs\":[{\"name\":\"registryCoordinator\",\"type\":\"address\",\"internalType\":\"contractIRegistryCoordinator\"},{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"blockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"\",\"type\":\"tuple[][]\",\"internalType\":\"structOperatorStateRetriever.Operator[][]\",\"components\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"stake\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getQuorumBitmapsAtBlockNumber\",\"inputs\":[{\"name\":\"registryCoordinator\",\"type\":\"address\",\"internalType\":\"contractIRegistryCoordinator\"},{\"name\":\"operatorIds\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"},{\"name\":\"blockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"}]", - Bin: "0x608060405234801561001057600080fd5b50611a05806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80633563b0d1146100515780634f739f741461007a5780635c1556621461009a578063cefdc1d4146100ba575b600080fd5b61006461005f366004611172565b6100db565b60405161007191906112cd565b60405180910390f35b61008d610088366004611332565b610571565b6040516100719190611435565b6100ad6100a8366004611513565b610c9b565b60405161007191906115c4565b6100cd6100c8366004611608565b610e63565b60405161007192919061164a565b60606000846001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa15801561011d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610141919061166b565b90506000856001600160a01b0316639e9923c26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610183573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101a7919061166b565b90506000866001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061020d919061166b565b9050600086516001600160401b0381111561022a5761022a61110a565b60405190808252806020026020018201604052801561025d57816020015b60608152602001906001900390816102485790505b50905060005b875181101561056557600088828151811061028057610280611688565b0160200151604051638902624560e01b815260f89190911c6004820181905263ffffffff8a16602483015291506000906001600160a01b03871690638902624590604401600060405180830381865afa1580156102e1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610309919081019061169e565b905080516001600160401b038111156103245761032461110a565b60405190808252806020026020018201604052801561036f57816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816103425790505b5084848151811061038257610382611688565b602002602001018190525060005b815181101561054f576040518060600160405280876001600160a01b03166347b314e88585815181106103c5576103c5611688565b60200260200101516040518263ffffffff1660e01b81526004016103eb91815260200190565b602060405180830381865afa158015610408573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042c919061166b565b6001600160a01b0316815260200183838151811061044c5761044c611688565b60200260200101518152602001896001600160a01b031663fa28c62785858151811061047a5761047a611688565b60209081029190910101516040516001600160e01b031960e084901b168152600481019190915260ff8816602482015263ffffffff8f166044820152606401602060405180830381865afa1580156104d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104fa919061172e565b6001600160601b031681525085858151811061051857610518611688565b6020026020010151828151811061053157610531611688565b602002602001018190525080806105479061176d565b915050610390565b505050808061055d9061176d565b915050610263565b50979650505050505050565b61059c6040518060800160405280606081526020016060815260200160608152602001606081525090565b6000876001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105dc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610600919061166b565b905061062d6040518060800160405280606081526020016060815260200160608152602001606081525090565b6040516361c8a12f60e11b81526001600160a01b038a169063c391425e9061065d908b9089908990600401611788565b600060405180830381865afa15801561067a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106a291908101906117d2565b81526040516340e03a8160e11b81526001600160a01b038316906381c07502906106d4908b908b908b90600401611889565b600060405180830381865afa1580156106f1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261071991908101906117d2565b6040820152856001600160401b038111156107365761073661110a565b60405190808252806020026020018201604052801561076957816020015b60608152602001906001900390816107545790505b50606082015260005b60ff8116871115610bac576000856001600160401b038111156107975761079761110a565b6040519080825280602002602001820160405280156107c0578160200160208202803683370190505b5083606001518360ff16815181106107da576107da611688565b602002602001018190525060005b86811015610aac5760008c6001600160a01b03166304ec63518a8a8581811061081357610813611688565b905060200201358e8860000151868151811061083157610831611688565b60200260200101516040518463ffffffff1660e01b815260040161086e9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa15801561088b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108af91906118b2565b90506001600160c01b0381166109575760405162461bcd60e51b815260206004820152605c60248201527f4f70657261746f7253746174655265747269657665722e676574436865636b5360448201527f69676e617475726573496e64696365733a206f70657261746f72206d7573742060648201527f6265207265676973746572656420617420626c6f636b6e756d62657200000000608482015260a40160405180910390fd5b8a8a8560ff1681811061096c5761096c611688565b6001600160c01b03841692013560f81c9190911c600190811614159050610a9957856001600160a01b031663dd9846b98a8a858181106109ae576109ae611688565b905060200201358d8d8860ff168181106109ca576109ca611688565b6040516001600160e01b031960e087901b1681526004810194909452919091013560f81c60248301525063ffffffff8f166044820152606401602060405180830381865afa158015610a20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4491906118db565b85606001518560ff1681518110610a5d57610a5d611688565b60200260200101518481518110610a7657610a76611688565b63ffffffff9092166020928302919091019091015282610a958161176d565b9350505b5080610aa48161176d565b9150506107e8565b506000816001600160401b03811115610ac757610ac761110a565b604051908082528060200260200182016040528015610af0578160200160208202803683370190505b50905060005b82811015610b715784606001518460ff1681518110610b1757610b17611688565b60200260200101518181518110610b3057610b30611688565b6020026020010151828281518110610b4a57610b4a611688565b63ffffffff9092166020928302919091019091015280610b698161176d565b915050610af6565b508084606001518460ff1681518110610b8c57610b8c611688565b602002602001018190525050508080610ba4906118f8565b915050610772565b506000896001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c11919061166b565b60405163354952a360e21b81529091506001600160a01b0382169063d5254a8c90610c44908b908b908e90600401611918565b600060405180830381865afa158015610c61573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c8991908101906117d2565b60208301525098975050505050505050565b60606000846001600160a01b031663c391425e84866040518363ffffffff1660e01b8152600401610ccd929190611942565b600060405180830381865afa158015610cea573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d1291908101906117d2565b9050600084516001600160401b03811115610d2f57610d2f61110a565b604051908082528060200260200182016040528015610d58578160200160208202803683370190505b50905060005b8551811015610e5957866001600160a01b03166304ec6351878381518110610d8857610d88611688565b602002602001015187868581518110610da357610da3611688565b60200260200101516040518463ffffffff1660e01b8152600401610de09392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015610dfd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2191906118b2565b6001600160c01b0316828281518110610e3c57610e3c611688565b602090810291909101015280610e518161176d565b915050610d5e565b5095945050505050565b6040805160018082528183019092526000916060918391602080830190803683370190505090508481600081518110610e9e57610e9e611688565b60209081029190910101526040516361c8a12f60e11b81526000906001600160a01b0388169063c391425e90610eda9088908690600401611942565b600060405180830381865afa158015610ef7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f1f91908101906117d2565b600081518110610f3157610f31611688565b60209081029190910101516040516304ec635160e01b81526004810188905263ffffffff87811660248301529091166044820181905291506000906001600160a01b038916906304ec635190606401602060405180830381865afa158015610f9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc191906118b2565b6001600160c01b031690506000610fd782610ff5565b905081610fe58a838a6100db565b9550955050505050935093915050565b6060600080611003846110c1565b61ffff166001600160401b0381111561101e5761101e61110a565b6040519080825280601f01601f191660200182016040528015611048576020820181803683370190505b5090506000805b825182108015611060575061010081105b156110b7576001811b9350858416156110a7578060f81b83838151811061108957611089611688565b60200101906001600160f81b031916908160001a9053508160010191505b6110b08161176d565b905061104f565b5090949350505050565b6000805b82156110ec576110d6600184611996565b90921691806110e4816119ad565b9150506110c5565b92915050565b6001600160a01b038116811461110757600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156111485761114861110a565b604052919050565b63ffffffff8116811461110757600080fd5b803561116d81611150565b919050565b60008060006060848603121561118757600080fd5b8335611192816110f2565b92506020848101356001600160401b03808211156111af57600080fd5b818701915087601f8301126111c357600080fd5b8135818111156111d5576111d561110a565b6111e7601f8201601f19168501611120565b915080825288848285010111156111fd57600080fd5b808484018584013760008482840101525080945050505061122060408501611162565b90509250925092565b600081518084526020808501808196508360051b810191508286016000805b868110156112bf578385038a52825180518087529087019087870190845b818110156112aa57835180516001600160a01b031684528a8101518b8501526040908101516001600160601b03169084015292890192606090920191600101611266565b50509a87019a95505091850191600101611248565b509298975050505050505050565b6020815260006112e06020830184611229565b9392505050565b60008083601f8401126112f957600080fd5b5081356001600160401b0381111561131057600080fd5b6020830191508360208260051b850101111561132b57600080fd5b9250929050565b6000806000806000806080878903121561134b57600080fd5b8635611356816110f2565b9550602087013561136681611150565b945060408701356001600160401b038082111561138257600080fd5b818901915089601f83011261139657600080fd5b8135818111156113a557600080fd5b8a60208285010111156113b757600080fd5b6020830196508095505060608901359150808211156113d557600080fd5b506113e289828a016112e7565b979a9699509497509295939492505050565b600081518084526020808501945080840160005b8381101561142a57815163ffffffff1687529582019590820190600101611408565b509495945050505050565b60006020808352835160808285015261145160a08501826113f4565b905081850151601f198086840301604087015261146e83836113f4565b9250604087015191508086840301606087015261148b83836113f4565b60608801518782038301608089015280518083529194508501925084840190600581901b8501860160005b828110156114e257848783030184526114d08287516113f4565b958801959388019391506001016114b6565b509998505050505050505050565b60006001600160401b038211156115095761150961110a565b5060051b60200190565b60008060006060848603121561152857600080fd5b8335611533816110f2565b92506020848101356001600160401b0381111561154f57600080fd5b8501601f8101871361156057600080fd5b803561157361156e826114f0565b611120565b81815260059190911b8201830190838101908983111561159257600080fd5b928401925b828410156115b057833582529284019290840190611597565b809650505050505061122060408501611162565b6020808252825182820181905260009190848201906040850190845b818110156115fc578351835292840192918401916001016115e0565b50909695505050505050565b60008060006060848603121561161d57600080fd5b8335611628816110f2565b925060208401359150604084013561163f81611150565b809150509250925092565b8281526040602082015260006116636040830184611229565b949350505050565b60006020828403121561167d57600080fd5b81516112e0816110f2565b634e487b7160e01b600052603260045260246000fd5b600060208083850312156116b157600080fd5b82516001600160401b038111156116c757600080fd5b8301601f810185136116d857600080fd5b80516116e661156e826114f0565b81815260059190911b8201830190838101908783111561170557600080fd5b928401925b828410156117235783518252928401929084019061170a565b979650505050505050565b60006020828403121561174057600080fd5b81516001600160601b03811681146112e057600080fd5b634e487b7160e01b600052601160045260246000fd5b600060001982141561178157611781611757565b5060010190565b63ffffffff84168152604060208201819052810182905260006001600160fb1b038311156117b557600080fd5b8260051b8085606085013760009201606001918252509392505050565b600060208083850312156117e557600080fd5b82516001600160401b038111156117fb57600080fd5b8301601f8101851361180c57600080fd5b805161181a61156e826114f0565b81815260059190911b8201830190838101908783111561183957600080fd5b928401925b8284101561172357835161185181611150565b8252928401929084019061183e565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b63ffffffff841681526040602082015260006118a9604083018486611860565b95945050505050565b6000602082840312156118c457600080fd5b81516001600160c01b03811681146112e057600080fd5b6000602082840312156118ed57600080fd5b81516112e081611150565b600060ff821660ff81141561190f5761190f611757565b60010192915050565b60408152600061192c604083018587611860565b905063ffffffff83166020830152949350505050565b60006040820163ffffffff851683526020604081850152818551808452606086019150828701935060005b818110156119895784518352938301939183019160010161196d565b5090979650505050505050565b6000828210156119a8576119a8611757565b500390565b600061ffff808316818114156119c5576119c5611757565b600101939250505056fea2646970667358221220792efe491617837b888f13a50a0d716b88502e9f9a7936d8b6aacc41742a807e64736f6c634300080c0033", + ABI: "[{\"type\":\"function\",\"name\":\"getBatchOperatorFromId\",\"inputs\":[{\"name\":\"registryCoordinator\",\"type\":\"address\",\"internalType\":\"contractIRegistryCoordinator\"},{\"name\":\"operatorIds\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"outputs\":[{\"name\":\"operators\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getBatchOperatorId\",\"inputs\":[{\"name\":\"registryCoordinator\",\"type\":\"address\",\"internalType\":\"contractIRegistryCoordinator\"},{\"name\":\"operators\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"outputs\":[{\"name\":\"operatorIds\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getCheckSignaturesIndices\",\"inputs\":[{\"name\":\"registryCoordinator\",\"type\":\"address\",\"internalType\":\"contractIRegistryCoordinator\"},{\"name\":\"referenceBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"nonSignerOperatorIds\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structOperatorStateRetriever.CheckSignaturesIndices\",\"components\":[{\"name\":\"nonSignerQuorumBitmapIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"quorumApkIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"totalStakeIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"nonSignerStakeIndices\",\"type\":\"uint32[][]\",\"internalType\":\"uint32[][]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorState\",\"inputs\":[{\"name\":\"registryCoordinator\",\"type\":\"address\",\"internalType\":\"contractIRegistryCoordinator\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"blockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple[][]\",\"internalType\":\"structOperatorStateRetriever.Operator[][]\",\"components\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"stake\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorState\",\"inputs\":[{\"name\":\"registryCoordinator\",\"type\":\"address\",\"internalType\":\"contractIRegistryCoordinator\"},{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"blockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"\",\"type\":\"tuple[][]\",\"internalType\":\"structOperatorStateRetriever.Operator[][]\",\"components\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"stake\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getQuorumBitmapsAtBlockNumber\",\"inputs\":[{\"name\":\"registryCoordinator\",\"type\":\"address\",\"internalType\":\"contractIRegistryCoordinator\"},{\"name\":\"operatorIds\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"},{\"name\":\"blockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"}]", + Bin: "0x608060405234801561001057600080fd5b50611e03806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806331b36bd9146100675780633563b0d1146100905780634d2b57fe146100b05780634f739f74146100d05780635c155662146100f0578063cefdc1d414610110575b600080fd5b61007a6100753660046113fa565b610131565b60405161008791906114e8565b60405180910390f35b6100a361009e366004611524565b61024d565b604051610087919061167f565b6100c36100be3660046116f8565b6106e3565b6040516100879190611747565b6100e36100de3660046117df565b6107f8565b60405161008791906118d7565b6101036100fe366004611992565b610f22565b60405161008791906119f5565b61012361011e366004611a2d565b6110ea565b604051610087929190611a64565b606081516001600160401b0381111561014c5761014c611391565b604051908082528060200260200182016040528015610175578160200160208202803683370190505b50905060005b825181101561024657836001600160a01b03166313542a4e8483815181106101a5576101a5611a85565b60200260200101516040518263ffffffff1660e01b81526004016101d891906001600160a01b0391909116815260200190565b602060405180830381865afa1580156101f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102199190611a9b565b82828151811061022b5761022b611a85565b602090810291909101015261023f81611aca565b905061017b565b5092915050565b60606000846001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa15801561028f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b39190611ae5565b90506000856001600160a01b0316639e9923c26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103199190611ae5565b90506000866001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa15801561035b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037f9190611ae5565b9050600086516001600160401b0381111561039c5761039c611391565b6040519080825280602002602001820160405280156103cf57816020015b60608152602001906001900390816103ba5790505b50905060005b87518110156106d75760008882815181106103f2576103f2611a85565b0160200151604051638902624560e01b815260f89190911c6004820181905263ffffffff8a16602483015291506000906001600160a01b03871690638902624590604401600060405180830381865afa158015610453573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261047b9190810190611b02565b905080516001600160401b0381111561049657610496611391565b6040519080825280602002602001820160405280156104e157816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816104b45790505b508484815181106104f4576104f4611a85565b602002602001018190525060005b81518110156106c1576040518060600160405280876001600160a01b03166347b314e885858151811061053757610537611a85565b60200260200101516040518263ffffffff1660e01b815260040161055d91815260200190565b602060405180830381865afa15801561057a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059e9190611ae5565b6001600160a01b031681526020018383815181106105be576105be611a85565b60200260200101518152602001896001600160a01b031663fa28c6278585815181106105ec576105ec611a85565b60209081029190910101516040516001600160e01b031960e084901b168152600481019190915260ff8816602482015263ffffffff8f166044820152606401602060405180830381865afa158015610648573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066c9190611b92565b6001600160601b031681525085858151811061068a5761068a611a85565b602002602001015182815181106106a3576106a3611a85565b602002602001018190525080806106b990611aca565b915050610502565b50505080806106cf90611aca565b9150506103d5565b50979650505050505050565b606081516001600160401b038111156106fe576106fe611391565b604051908082528060200260200182016040528015610727578160200160208202803683370190505b50905060005b825181101561024657836001600160a01b031663296bb06484838151811061075757610757611a85565b60200260200101516040518263ffffffff1660e01b815260040161077d91815260200190565b602060405180830381865afa15801561079a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107be9190611ae5565b8282815181106107d0576107d0611a85565b6001600160a01b03909216602092830291909101909101526107f181611aca565b905061072d565b6108236040518060800160405280606081526020016060815260200160608152602001606081525090565b6000876001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa158015610863573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108879190611ae5565b90506108b46040518060800160405280606081526020016060815260200160608152602001606081525090565b6040516361c8a12f60e11b81526001600160a01b038a169063c391425e906108e4908b9089908990600401611bbb565b600060405180830381865afa158015610901573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109299190810190611c05565b81526040516340e03a8160e11b81526001600160a01b038316906381c075029061095b908b908b908b90600401611cbc565b600060405180830381865afa158015610978573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109a09190810190611c05565b6040820152856001600160401b038111156109bd576109bd611391565b6040519080825280602002602001820160405280156109f057816020015b60608152602001906001900390816109db5790505b50606082015260005b60ff8116871115610e33576000856001600160401b03811115610a1e57610a1e611391565b604051908082528060200260200182016040528015610a47578160200160208202803683370190505b5083606001518360ff1681518110610a6157610a61611a85565b602002602001018190525060005b86811015610d335760008c6001600160a01b03166304ec63518a8a85818110610a9a57610a9a611a85565b905060200201358e88600001518681518110610ab857610ab8611a85565b60200260200101516040518463ffffffff1660e01b8152600401610af59392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015610b12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b369190611ce5565b90506001600160c01b038116610bde5760405162461bcd60e51b815260206004820152605c60248201527f4f70657261746f7253746174655265747269657665722e676574436865636b5360448201527f69676e617475726573496e64696365733a206f70657261746f72206d7573742060648201527f6265207265676973746572656420617420626c6f636b6e756d62657200000000608482015260a40160405180910390fd5b8a8a8560ff16818110610bf357610bf3611a85565b6001600160c01b03841692013560f81c9190911c600190811614159050610d2057856001600160a01b031663dd9846b98a8a85818110610c3557610c35611a85565b905060200201358d8d8860ff16818110610c5157610c51611a85565b6040516001600160e01b031960e087901b1681526004810194909452919091013560f81c60248301525063ffffffff8f166044820152606401602060405180830381865afa158015610ca7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ccb9190611d0e565b85606001518560ff1681518110610ce457610ce4611a85565b60200260200101518481518110610cfd57610cfd611a85565b63ffffffff9092166020928302919091019091015282610d1c81611aca565b9350505b5080610d2b81611aca565b915050610a6f565b506000816001600160401b03811115610d4e57610d4e611391565b604051908082528060200260200182016040528015610d77578160200160208202803683370190505b50905060005b82811015610df85784606001518460ff1681518110610d9e57610d9e611a85565b60200260200101518181518110610db757610db7611a85565b6020026020010151828281518110610dd157610dd1611a85565b63ffffffff9092166020928302919091019091015280610df081611aca565b915050610d7d565b508084606001518460ff1681518110610e1357610e13611a85565b602002602001018190525050508080610e2b90611d2b565b9150506109f9565b506000896001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e989190611ae5565b60405163354952a360e21b81529091506001600160a01b0382169063d5254a8c90610ecb908b908b908e90600401611d4b565b600060405180830381865afa158015610ee8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f109190810190611c05565b60208301525098975050505050505050565b60606000846001600160a01b031663c391425e84866040518363ffffffff1660e01b8152600401610f54929190611d75565b600060405180830381865afa158015610f71573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f999190810190611c05565b9050600084516001600160401b03811115610fb657610fb6611391565b604051908082528060200260200182016040528015610fdf578160200160208202803683370190505b50905060005b85518110156110e057866001600160a01b03166304ec635187838151811061100f5761100f611a85565b60200260200101518786858151811061102a5761102a611a85565b60200260200101516040518463ffffffff1660e01b81526004016110679392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015611084573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a89190611ce5565b6001600160c01b03168282815181106110c3576110c3611a85565b6020908102919091010152806110d881611aca565b915050610fe5565b5095945050505050565b604080516001808252818301909252600091606091839160208083019080368337019050509050848160008151811061112557611125611a85565b60209081029190910101526040516361c8a12f60e11b81526000906001600160a01b0388169063c391425e906111619088908690600401611d75565b600060405180830381865afa15801561117e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111a69190810190611c05565b6000815181106111b8576111b8611a85565b60209081029190910101516040516304ec635160e01b81526004810188905263ffffffff87811660248301529091166044820181905291506000906001600160a01b038916906304ec635190606401602060405180830381865afa158015611224573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112489190611ce5565b6001600160c01b03169050600061125e8261127c565b90508161126c8a838a61024d565b9550955050505050935093915050565b606060008061128a84611348565b61ffff166001600160401b038111156112a5576112a5611391565b6040519080825280601f01601f1916602001820160405280156112cf576020820181803683370190505b5090506000805b8251821080156112e7575061010081105b1561133e576001811b93508584161561132e578060f81b83838151811061131057611310611a85565b60200101906001600160f81b031916908160001a9053508160010191505b61133781611aca565b90506112d6565b5090949350505050565b6000805b82156113735761135d600184611d94565b909216918061136b81611dab565b91505061134c565b92915050565b6001600160a01b038116811461138e57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156113cf576113cf611391565b604052919050565b60006001600160401b038211156113f0576113f0611391565b5060051b60200190565b6000806040838503121561140d57600080fd5b823561141881611379565b91506020838101356001600160401b0381111561143457600080fd5b8401601f8101861361144557600080fd5b8035611458611453826113d7565b6113a7565b81815260059190911b8201830190838101908883111561147757600080fd5b928401925b8284101561149e57833561148f81611379565b8252928401929084019061147c565b80955050505050509250929050565b600081518084526020808501945080840160005b838110156114dd578151875295820195908201906001016114c1565b509495945050505050565b6020815260006114fb60208301846114ad565b9392505050565b63ffffffff8116811461138e57600080fd5b803561151f81611502565b919050565b60008060006060848603121561153957600080fd5b833561154481611379565b92506020848101356001600160401b038082111561156157600080fd5b818701915087601f83011261157557600080fd5b81358181111561158757611587611391565b611599601f8201601f191685016113a7565b915080825288848285010111156115af57600080fd5b80848401858401376000848284010152508094505050506115d260408501611514565b90509250925092565b600081518084526020808501808196508360051b810191508286016000805b86811015611671578385038a52825180518087529087019087870190845b8181101561165c57835180516001600160a01b031684528a8101518b8501526040908101516001600160601b03169084015292890192606090920191600101611618565b50509a87019a955050918501916001016115fa565b509298975050505050505050565b6020815260006114fb60208301846115db565b600082601f8301126116a357600080fd5b813560206116b3611453836113d7565b82815260059290921b840181019181810190868411156116d257600080fd5b8286015b848110156116ed57803583529183019183016116d6565b509695505050505050565b6000806040838503121561170b57600080fd5b823561171681611379565b915060208301356001600160401b0381111561173157600080fd5b61173d85828601611692565b9150509250929050565b6020808252825182820181905260009190848201906040850190845b818110156117885783516001600160a01b031683529284019291840191600101611763565b50909695505050505050565b60008083601f8401126117a657600080fd5b5081356001600160401b038111156117bd57600080fd5b6020830191508360208260051b85010111156117d857600080fd5b9250929050565b600080600080600080608087890312156117f857600080fd5b863561180381611379565b9550602087013561181381611502565b945060408701356001600160401b038082111561182f57600080fd5b818901915089601f83011261184357600080fd5b81358181111561185257600080fd5b8a602082850101111561186457600080fd5b60208301965080955050606089013591508082111561188257600080fd5b5061188f89828a01611794565b979a9699509497509295939492505050565b600081518084526020808501945080840160005b838110156114dd57815163ffffffff16875295820195908201906001016118b5565b6000602080835283516080828501526118f360a08501826118a1565b905081850151601f198086840301604087015261191083836118a1565b9250604087015191508086840301606087015261192d83836118a1565b60608801518782038301608089015280518083529194508501925084840190600581901b8501860160005b8281101561198457848783030184526119728287516118a1565b95880195938801939150600101611958565b509998505050505050505050565b6000806000606084860312156119a757600080fd5b83356119b281611379565b925060208401356001600160401b038111156119cd57600080fd5b6119d986828701611692565b92505060408401356119ea81611502565b809150509250925092565b6020808252825182820181905260009190848201906040850190845b8181101561178857835183529284019291840191600101611a11565b600080600060608486031215611a4257600080fd5b8335611a4d81611379565b92506020840135915060408401356119ea81611502565b828152604060208201526000611a7d60408301846115db565b949350505050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611aad57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b6000600019821415611ade57611ade611ab4565b5060010190565b600060208284031215611af757600080fd5b81516114fb81611379565b60006020808385031215611b1557600080fd5b82516001600160401b03811115611b2b57600080fd5b8301601f81018513611b3c57600080fd5b8051611b4a611453826113d7565b81815260059190911b82018301908381019087831115611b6957600080fd5b928401925b82841015611b8757835182529284019290840190611b6e565b979650505050505050565b600060208284031215611ba457600080fd5b81516001600160601b03811681146114fb57600080fd5b63ffffffff84168152604060208201819052810182905260006001600160fb1b03831115611be857600080fd5b8260051b8085606085013760009201606001918252509392505050565b60006020808385031215611c1857600080fd5b82516001600160401b03811115611c2e57600080fd5b8301601f81018513611c3f57600080fd5b8051611c4d611453826113d7565b81815260059190911b82018301908381019087831115611c6c57600080fd5b928401925b82841015611b87578351611c8481611502565b82529284019290840190611c71565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b63ffffffff84168152604060208201526000611cdc604083018486611c93565b95945050505050565b600060208284031215611cf757600080fd5b81516001600160c01b03811681146114fb57600080fd5b600060208284031215611d2057600080fd5b81516114fb81611502565b600060ff821660ff811415611d4257611d42611ab4565b60010192915050565b604081526000611d5f604083018587611c93565b905063ffffffff83166020830152949350505050565b63ffffffff83168152604060208201526000611a7d60408301846114ad565b600082821015611da657611da6611ab4565b500390565b600061ffff80831681811415611dc357611dc3611ab4565b600101939250505056fea2646970667358221220b96df2130f5297baecbb70b563373df8d0dbaa88fed0b64a4e367a3c31841b2864736f6c634300080c0033", } // ContractOperatorStateRetrieverABI is the input ABI used to generate the binding from. @@ -217,6 +217,68 @@ func (_ContractOperatorStateRetriever *ContractOperatorStateRetrieverTransactorR return _ContractOperatorStateRetriever.Contract.contract.Transact(opts, method, params...) } +// GetBatchOperatorFromId is a free data retrieval call binding the contract method 0x4d2b57fe. +// +// Solidity: function getBatchOperatorFromId(address registryCoordinator, bytes32[] operatorIds) view returns(address[] operators) +func (_ContractOperatorStateRetriever *ContractOperatorStateRetrieverCaller) GetBatchOperatorFromId(opts *bind.CallOpts, registryCoordinator common.Address, operatorIds [][32]byte) ([]common.Address, error) { + var out []interface{} + err := _ContractOperatorStateRetriever.contract.Call(opts, &out, "getBatchOperatorFromId", registryCoordinator, operatorIds) + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// GetBatchOperatorFromId is a free data retrieval call binding the contract method 0x4d2b57fe. +// +// Solidity: function getBatchOperatorFromId(address registryCoordinator, bytes32[] operatorIds) view returns(address[] operators) +func (_ContractOperatorStateRetriever *ContractOperatorStateRetrieverSession) GetBatchOperatorFromId(registryCoordinator common.Address, operatorIds [][32]byte) ([]common.Address, error) { + return _ContractOperatorStateRetriever.Contract.GetBatchOperatorFromId(&_ContractOperatorStateRetriever.CallOpts, registryCoordinator, operatorIds) +} + +// GetBatchOperatorFromId is a free data retrieval call binding the contract method 0x4d2b57fe. +// +// Solidity: function getBatchOperatorFromId(address registryCoordinator, bytes32[] operatorIds) view returns(address[] operators) +func (_ContractOperatorStateRetriever *ContractOperatorStateRetrieverCallerSession) GetBatchOperatorFromId(registryCoordinator common.Address, operatorIds [][32]byte) ([]common.Address, error) { + return _ContractOperatorStateRetriever.Contract.GetBatchOperatorFromId(&_ContractOperatorStateRetriever.CallOpts, registryCoordinator, operatorIds) +} + +// GetBatchOperatorId is a free data retrieval call binding the contract method 0x31b36bd9. +// +// Solidity: function getBatchOperatorId(address registryCoordinator, address[] operators) view returns(bytes32[] operatorIds) +func (_ContractOperatorStateRetriever *ContractOperatorStateRetrieverCaller) GetBatchOperatorId(opts *bind.CallOpts, registryCoordinator common.Address, operators []common.Address) ([][32]byte, error) { + var out []interface{} + err := _ContractOperatorStateRetriever.contract.Call(opts, &out, "getBatchOperatorId", registryCoordinator, operators) + + if err != nil { + return *new([][32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) + + return out0, err + +} + +// GetBatchOperatorId is a free data retrieval call binding the contract method 0x31b36bd9. +// +// Solidity: function getBatchOperatorId(address registryCoordinator, address[] operators) view returns(bytes32[] operatorIds) +func (_ContractOperatorStateRetriever *ContractOperatorStateRetrieverSession) GetBatchOperatorId(registryCoordinator common.Address, operators []common.Address) ([][32]byte, error) { + return _ContractOperatorStateRetriever.Contract.GetBatchOperatorId(&_ContractOperatorStateRetriever.CallOpts, registryCoordinator, operators) +} + +// GetBatchOperatorId is a free data retrieval call binding the contract method 0x31b36bd9. +// +// Solidity: function getBatchOperatorId(address registryCoordinator, address[] operators) view returns(bytes32[] operatorIds) +func (_ContractOperatorStateRetriever *ContractOperatorStateRetrieverCallerSession) GetBatchOperatorId(registryCoordinator common.Address, operators []common.Address) ([][32]byte, error) { + return _ContractOperatorStateRetriever.Contract.GetBatchOperatorId(&_ContractOperatorStateRetriever.CallOpts, registryCoordinator, operators) +} + // GetCheckSignaturesIndices is a free data retrieval call binding the contract method 0x4f739f74. // // Solidity: function getCheckSignaturesIndices(address registryCoordinator, uint32 referenceBlockNumber, bytes quorumNumbers, bytes32[] nonSignerOperatorIds) view returns((uint32[],uint32[],uint32[],uint32[][])) diff --git a/contracts/bindings/RegistryCoordinator/binding.go b/contracts/bindings/RegistryCoordinator/binding.go index 030ad2c6fe..d3badef52d 100644 --- a/contracts/bindings/RegistryCoordinator/binding.go +++ b/contracts/bindings/RegistryCoordinator/binding.go @@ -89,8 +89,8 @@ type IStakeRegistryStrategyParams struct { // ContractRegistryCoordinatorMetaData contains all meta data concerning the ContractRegistryCoordinator contract. var ContractRegistryCoordinatorMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_serviceManager\",\"type\":\"address\",\"internalType\":\"contractIServiceManager\"},{\"name\":\"_stakeRegistry\",\"type\":\"address\",\"internalType\":\"contractIStakeRegistry\"},{\"name\":\"_blsApkRegistry\",\"type\":\"address\",\"internalType\":\"contractIBLSApkRegistry\"},{\"name\":\"_indexRegistry\",\"type\":\"address\",\"internalType\":\"contractIIndexRegistry\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"OPERATOR_CHURN_APPROVAL_TYPEHASH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"PUBKEY_REGISTRATION_TYPEHASH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"blsApkRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIBLSApkRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"calculateOperatorChurnApprovalDigestHash\",\"inputs\":[{\"name\":\"registeringOperator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"registeringOperatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"operatorKickParams\",\"type\":\"tuple[]\",\"internalType\":\"structIRegistryCoordinator.OperatorKickParam[]\",\"components\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"churnApprover\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"createQuorum\",\"inputs\":[{\"name\":\"operatorSetParams\",\"type\":\"tuple\",\"internalType\":\"structIRegistryCoordinator.OperatorSetParam\",\"components\":[{\"name\":\"maxOperatorCount\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"kickBIPsOfOperatorStake\",\"type\":\"uint16\",\"internalType\":\"uint16\"},{\"name\":\"kickBIPsOfTotalStake\",\"type\":\"uint16\",\"internalType\":\"uint16\"}]},{\"name\":\"minimumStake\",\"type\":\"uint96\",\"internalType\":\"uint96\"},{\"name\":\"strategyParams\",\"type\":\"tuple[]\",\"internalType\":\"structIStakeRegistry.StrategyParams[]\",\"components\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"multiplier\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"deregisterOperator\",\"inputs\":[{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"ejectOperator\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"ejector\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getCurrentQuorumBitmap\",\"inputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint192\",\"internalType\":\"uint192\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperator\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIRegistryCoordinator.OperatorInfo\",\"components\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"status\",\"type\":\"uint8\",\"internalType\":\"enumIRegistryCoordinator.OperatorStatus\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorFromId\",\"inputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorId\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorSetParams\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIRegistryCoordinator.OperatorSetParam\",\"components\":[{\"name\":\"maxOperatorCount\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"kickBIPsOfOperatorStake\",\"type\":\"uint16\",\"internalType\":\"uint16\"},{\"name\":\"kickBIPsOfTotalStake\",\"type\":\"uint16\",\"internalType\":\"uint16\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorStatus\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"enumIRegistryCoordinator.OperatorStatus\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getQuorumBitmapAtBlockNumberByIndex\",\"inputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"blockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"index\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint192\",\"internalType\":\"uint192\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getQuorumBitmapHistoryLength\",\"inputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getQuorumBitmapIndicesAtBlockNumber\",\"inputs\":[{\"name\":\"blockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorIds\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getQuorumBitmapUpdateByIndex\",\"inputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"index\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIRegistryCoordinator.QuorumBitmapUpdate\",\"components\":[{\"name\":\"updateBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"nextUpdateBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"quorumBitmap\",\"type\":\"uint192\",\"internalType\":\"uint192\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"indexRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIIndexRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"_initialOwner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_churnApprover\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_ejector\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_pauserRegistry\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"},{\"name\":\"_initialPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_operatorSetParams\",\"type\":\"tuple[]\",\"internalType\":\"structIRegistryCoordinator.OperatorSetParam[]\",\"components\":[{\"name\":\"maxOperatorCount\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"kickBIPsOfOperatorStake\",\"type\":\"uint16\",\"internalType\":\"uint16\"},{\"name\":\"kickBIPsOfTotalStake\",\"type\":\"uint16\",\"internalType\":\"uint16\"}]},{\"name\":\"_minimumStakes\",\"type\":\"uint96[]\",\"internalType\":\"uint96[]\"},{\"name\":\"_strategyParams\",\"type\":\"tuple[][]\",\"internalType\":\"structIStakeRegistry.StrategyParams[][]\",\"components\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"multiplier\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isChurnApproverSaltUsed\",\"inputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"numRegistries\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"pauseAll\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pauserRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pubkeyRegistrationMessageHash\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"quorumCount\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"quorumUpdateBlockNumber\",\"inputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"registerOperator\",\"inputs\":[{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"socket\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"params\",\"type\":\"tuple\",\"internalType\":\"structIBLSApkRegistry.PubkeyRegistrationParams\",\"components\":[{\"name\":\"pubkeyRegistrationSignature\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"pubkeyG1\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"pubkeyG2\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]}]},{\"name\":\"operatorSignature\",\"type\":\"tuple\",\"internalType\":\"structISignatureUtils.SignatureWithSaltAndExpiry\",\"components\":[{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"registerOperatorWithChurn\",\"inputs\":[{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"socket\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"params\",\"type\":\"tuple\",\"internalType\":\"structIBLSApkRegistry.PubkeyRegistrationParams\",\"components\":[{\"name\":\"pubkeyRegistrationSignature\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"pubkeyG1\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"pubkeyG2\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]}]},{\"name\":\"operatorKickParams\",\"type\":\"tuple[]\",\"internalType\":\"structIRegistryCoordinator.OperatorKickParam[]\",\"components\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"name\":\"churnApproverSignature\",\"type\":\"tuple\",\"internalType\":\"structISignatureUtils.SignatureWithSaltAndExpiry\",\"components\":[{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"operatorSignature\",\"type\":\"tuple\",\"internalType\":\"structISignatureUtils.SignatureWithSaltAndExpiry\",\"components\":[{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"registries\",\"inputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"serviceManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIServiceManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"setChurnApprover\",\"inputs\":[{\"name\":\"_churnApprover\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setEjector\",\"inputs\":[{\"name\":\"_ejector\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setOperatorSetParams\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"operatorSetParams\",\"type\":\"tuple\",\"internalType\":\"structIRegistryCoordinator.OperatorSetParam\",\"components\":[{\"name\":\"maxOperatorCount\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"kickBIPsOfOperatorStake\",\"type\":\"uint16\",\"internalType\":\"uint16\"},{\"name\":\"kickBIPsOfTotalStake\",\"type\":\"uint16\",\"internalType\":\"uint16\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setPauserRegistry\",\"inputs\":[{\"name\":\"newPauserRegistry\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"stakeRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStakeRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"unpause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateOperators\",\"inputs\":[{\"name\":\"operators\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateOperatorsForQuorum\",\"inputs\":[{\"name\":\"operatorsPerQuorum\",\"type\":\"address[][]\",\"internalType\":\"address[][]\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateSocket\",\"inputs\":[{\"name\":\"socket\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"ChurnApproverUpdated\",\"inputs\":[{\"name\":\"prevChurnApprover\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"newChurnApprover\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"EjectorUpdated\",\"inputs\":[{\"name\":\"prevEjector\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"newEjector\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorDeregistered\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operatorId\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorRegistered\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operatorId\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSetParamsUpdated\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"indexed\":true,\"internalType\":\"uint8\"},{\"name\":\"operatorSetParams\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structIRegistryCoordinator.OperatorSetParam\",\"components\":[{\"name\":\"maxOperatorCount\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"kickBIPsOfOperatorStake\",\"type\":\"uint16\",\"internalType\":\"uint16\"},{\"name\":\"kickBIPsOfTotalStake\",\"type\":\"uint16\",\"internalType\":\"uint16\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSocketUpdate\",\"inputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"socket\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"PauserRegistrySet\",\"inputs\":[{\"name\":\"pauserRegistry\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIPauserRegistry\"},{\"name\":\"newPauserRegistry\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIPauserRegistry\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"QuorumBlockNumberUpdated\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"indexed\":true,\"internalType\":\"uint8\"},{\"name\":\"blocknumber\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false}]", - Bin: "0x6101c06040523480156200001257600080fd5b506040516200618738038062006187833981016040819052620000359162000254565b604080518082018252601681527f4156535265676973747279436f6f7264696e61746f720000000000000000000060208083019182528351808501909452600684526576302e302e3160d01b908401528151902060e08190527f6bda7e3f385e48841048390444cced5cc795af87758af67622e5f4f0882c4a996101008190524660a05287938793879387939192917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f620001358184846040805160208101859052908101839052606081018290524660808201523060a082015260009060c0016040516020818303038152906040528051906020012090509392505050565b6080523060c05261012052505050506001600160a01b039384166101405291831661018052821661016052166101a0526200016f62000179565b50505050620002bc565b600054610100900460ff1615620001e65760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000239576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200025157600080fd5b50565b600080600080608085870312156200026b57600080fd5b845162000278816200023b565b60208601519094506200028b816200023b565b60408601519093506200029e816200023b565b6060860151909250620002b1816200023b565b939692955090935050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a051615dc3620003c460003960008181610637015281816111130152818161201b01528181612d4d0152818161355a0152613b3201526000818161057c01528181611fa60152818161244e01528181612ccd015281816134b1015281816137070152613ab101526000818161054201528181610eae01528181611fe401528181612c4f01528181612e3501528181612eab015281816134310152613bae01526000818161048601528181612ba5015261337901526000613db501526000613e0401526000613ddf01526000613d3801526000613d6201526000613d8c0152615dc36000f3fe608060405234801561001057600080fd5b50600436106102945760003560e01c80635df45946116101675780639feab859116100ce578063d75b4c8811610087578063d75b4c88146106f5578063dd8283f314610708578063e65797ad1461071b578063f2fde38b146107be578063fabc1cbc146107d1578063fd39105a146107e457600080fd5b80639feab85914610659578063a50857bf14610680578063c391425e14610693578063ca0de882146106b3578063ca4f2d97146106da578063d72d8dd6146106ed57600080fd5b8063871ef04911610120578063871ef049146105cc578063886f1195146105df5780638da5cb5b146105f85780639aa1653d146106005780639b5d177b1461061f5780639e9923c21461063257600080fd5b80635df459461461053d5780636347c9001461056457806368304835146105775780636e3b17db1461059e578063715018a6146105b157806384ca5213146105b957600080fd5b806328f61b311161020b5780635140a548116101c45780635140a548146104c85780635865c60c146104db578063595c6a67146104fb5780635ac86ab7146105035780635b0b829f146105225780635c975abb1461053557600080fd5b806328f61b3114610435578063296bb0641461044857806329d1e0c31461045b5780632cdd1e861461046e5780633998fdd3146104815780633c2a7f4c146104a857600080fd5b806310d67a2f1161025d57806310d67a2f1461034a57806313542a4e1461035d578063136439dd146103865780631478851f146103995780631eb812da146103cc578063249a0c421461041557600080fd5b8062cf2ab51461029957806303fd3492146102ae57806304ec6351146102e1578063054310e61461030c5780630cf4b76714610337575b600080fd5b6102ac6102a73660046148b5565b610820565b005b6102ce6102bc3660046148f6565b60009081526098602052604090205490565b6040519081526020015b60405180910390f35b6102f46102ef366004614921565b610936565b6040516001600160c01b0390911681526020016102d8565b609d5461031f906001600160a01b031681565b6040516001600160a01b0390911681526020016102d8565b6102ac610345366004614a40565b610b2c565b6102ac610358366004614ab5565b610c14565b6102ce61036b366004614ab5565b6001600160a01b031660009081526099602052604090205490565b6102ac6103943660046148f6565b610cc7565b6103bc6103a73660046148f6565b609a6020526000908152604090205460ff1681565b60405190151581526020016102d8565b6103df6103da366004614ad2565b610e04565b60408051825163ffffffff908116825260208085015190911690820152918101516001600160c01b0316908201526060016102d8565b6102ce610423366004614b05565b609b6020526000908152604090205481565b609e5461031f906001600160a01b031681565b61031f6104563660046148f6565b610e95565b6102ac610469366004614ab5565b610f21565b6102ac61047c366004614ab5565b610f32565b61031f7f000000000000000000000000000000000000000000000000000000000000000081565b6104bb6104b6366004614ab5565b610f43565b6040516102d89190614b20565b6102ac6104d6366004614b78565b610fc2565b6104ee6104e9366004614ab5565b6114d3565b6040516102d89190614c1b565b6102ac611547565b6103bc610511366004614b05565b6001805460ff9092161b9081161490565b6102ac610530366004614ca0565b611613565b6001546102ce565b61031f7f000000000000000000000000000000000000000000000000000000000000000081565b61031f6105723660046148f6565b6116aa565b61031f7f000000000000000000000000000000000000000000000000000000000000000081565b6102ac6105ac366004614cd4565b6116d4565b6102ac611794565b6102ce6105c7366004614d8b565b6117a8565b6102f46105da3660046148f6565b6117f2565b60005461031f906201000090046001600160a01b031681565b61031f6117fd565b60965461060d9060ff1681565b60405160ff90911681526020016102d8565b6102ac61062d366004614f24565b611816565b61031f7f000000000000000000000000000000000000000000000000000000000000000081565b6102ce7f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de681565b6102ac61068e36600461501d565b611b4e565b6106a66106a13660046150c5565b611cd2565b6040516102d8919061516a565b6102ce7f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a81565b6102ac6106e83660046151b4565b611d8b565b609c546102ce565b6102ac61070336600461529a565b611df2565b6102ac61071636600461544d565b611e05565b61078a610729366004614b05565b60408051606080820183526000808352602080840182905292840181905260ff9490941684526097825292829020825193840183525463ffffffff8116845261ffff600160201b8204811692850192909252600160301b9004169082015290565b60408051825163ffffffff16815260208084015161ffff9081169183019190915292820151909216908201526060016102d8565b6102ac6107cc366004614ab5565b612109565b6102ac6107df3660046148f6565b61217f565b6108136107f2366004614ab5565b6001600160a01b031660009081526099602052604090206001015460ff1690565b6040516102d89190615521565b600154600290600490811614156108525760405162461bcd60e51b81526004016108499061552f565b60405180910390fd5b60005b8281101561093057600084848381811061087157610871615566565b90506020020160208101906108869190614ab5565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff1660028111156108d1576108d1614be3565b60028111156108e2576108e2614be3565b905250805190915060006108f5826122db565b9050600061090b826001600160c01b0316612344565b9050610918858583612410565b5050505050808061092890615592565b915050610855565b50505050565b600083815260986020526040812080548291908490811061095957610959615566565b600091825260209182902060408051606081018252929091015463ffffffff808216808552600160201b8304821695850195909552600160401b9091046001600160c01b03169183019190915290925085161015610a535760405162461bcd60e51b815260206004820152606560248201527f5265676973747279436f6f7264696e61746f722e67657451756f72756d42697460448201527f6d61704174426c6f636b4e756d6265724279496e6465783a2071756f72756d4260648201527f69746d61705570646174652069732066726f6d20616674657220626c6f636b4e6084820152643ab6b132b960d91b60a482015260c401610849565b602081015163ffffffff161580610a795750806020015163ffffffff168463ffffffff16105b610b205760405162461bcd60e51b815260206004820152606660248201527f5265676973747279436f6f7264696e61746f722e67657451756f72756d42697460448201527f6d61704174426c6f636b4e756d6265724279496e6465783a2071756f72756d4260648201527f69746d61705570646174652069732066726f6d206265666f726520626c6f636b608482015265273ab6b132b960d11b60a482015260c401610849565b60400151949350505050565b60013360009081526099602052604090206001015460ff166002811115610b5557610b55614be3565b14610bc85760405162461bcd60e51b815260206004820152603c60248201527f5265676973747279436f6f7264696e61746f722e757064617465536f636b657460448201527f3a206f70657261746f72206973206e6f742072656769737465726564000000006064820152608401610849565b33600090815260996020526040908190205490517fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa90610c099084906155fa565b60405180910390a250565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8b919061560d565b6001600160a01b0316336001600160a01b031614610cbb5760405162461bcd60e51b81526004016108499061562a565b610cc4816124fd565b50565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610d14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d389190615674565b610d545760405162461bcd60e51b815260040161084990615696565b60015481811614610dcd5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610849565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d90602001610c09565b60408051606081018252600080825260208201819052918101919091526000838152609860205260409020805483908110610e4157610e41615566565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160c01b03600160401b909304929092169082015290505b92915050565b6040516308f6629d60e31b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906347b314e890602401602060405180830381865afa158015610efd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8f919061560d565b610f29612602565b610cc481612661565b610f3a612602565b610cc4816126ca565b6040805180820190915260008082526020820152610e8f610fbd7f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de684604051602001610fa29291909182526001600160a01b0316602082015260400190565b60405160208183030381529060405280519060200120612733565b612781565b60015460029060049081161415610feb5760405162461bcd60e51b81526004016108499061552f565b600061103384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506128119050565b90508483146110a45760405162461bcd60e51b81526020600482015260436024820152600080516020615d2e83398151915260448201527f6f7273466f7251756f72756d3a20696e707574206c656e677468206d69736d616064820152620e8c6d60eb1b608482015260a401610849565b60005b838110156114ca5760008585838181106110c3576110c3615566565b919091013560f81c915036905060008989858181106110e4576110e4615566565b90506020028101906110f691906156de565b6040516379a0849160e11b815260ff8616600482015291935091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f341092290602401602060405180830381865afa158015611162573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111869190615727565b63ffffffff1681146112225760405162461bcd60e51b81526020600482015260656024820152600080516020615d2e83398151915260448201527f6f7273466f7251756f72756d3a206e756d626572206f6620757064617465642060648201527f6f70657261746f727320646f6573206e6f74206d617463682071756f72756d206084820152641d1bdd185b60da1b60a482015260c401610849565b6000805b8281101561146957600084848381811061124257611242615566565b90506020020160208101906112579190614ab5565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff1660028111156112a2576112a2614be3565b60028111156112b3576112b3614be3565b905250805190915060006112c6826122db565b905060016001600160c01b03821660ff8b161c81161461134a5760405162461bcd60e51b815260206004820152604460248201819052600080516020615d2e833981519152908201527f6f7273466f7251756f72756d3a206f70657261746f72206e6f7420696e2071756064820152636f72756d60e01b608482015260a401610849565b856001600160a01b0316846001600160a01b0316116113f55760405162461bcd60e51b81526020600482015260676024820152600080516020615d2e83398151915260448201527f6f7273466f7251756f72756d3a206f70657261746f7273206172726179206d7560648201527f737420626520736f7274656420696e20617363656e64696e6720616464726573608482015266399037b93232b960c91b60a482015260c401610849565b5061145383838f8f8d908e600161140c9190615744565b926114199392919061575c565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061241092505050565b50909250611462905081615592565b9050611226565b5060ff84166000818152609b6020908152604091829020439081905591519182527f46077d55330763f16269fd75e5761663f4192d2791747c0189b16ad31db07db4910160405180910390a250505050806114c390615592565b90506110a7565b50505050505050565b60408051808201909152600080825260208201526001600160a01b0382166000908152609960209081526040918290208251808401909352805483526001810154909183019060ff16600281111561152d5761152d614be3565b600281111561153e5761153e614be3565b90525092915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015611594573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115b89190615674565b6115d45760405162461bcd60e51b815260040161084990615696565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61161b612602565b609654829060ff9081169082161061169b5760405162461bcd60e51b815260206004820152603760248201527f5265676973747279436f6f7264696e61746f722e71756f72756d45786973747360448201527f3a2071756f72756d20646f6573206e6f742065786973740000000000000000006064820152608401610849565b6116a583836128a2565b505050565b609c81815481106116ba57600080fd5b6000918252602090912001546001600160a01b0316905081565b609e546001600160a01b031633146117545760405162461bcd60e51b815260206004820152603a60248201527f5265676973747279436f6f7264696e61746f722e6f6e6c79456a6563746f723a60448201527f2063616c6c6572206973206e6f742074686520656a6563746f720000000000006064820152608401610849565b6116a58383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061294f92505050565b61179c612602565b6117a66000612dc1565b565b60006117e87f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a8787878787604051602001610fa296959493929190615786565b9695505050505050565b6000610e8f826122db565b60006118116064546001600160a01b031690565b905090565b60018054600091908116141561183e5760405162461bcd60e51b81526004016108499061552f565b8389146118c15760405162461bcd60e51b8152602060048201526044602482018190527f5265676973747279436f6f7264696e61746f722e72656769737465724f706572908201527f61746f7257697468436875726e3a20696e707574206c656e677468206d69736d6064820152630c2e8c6d60e31b608482015260a401610849565b60006118cd3388612e13565b905061192d33828888808060200260200160405190810160405280939291908181526020016000905b82821015611922576119136040830286013681900381019061580b565b815260200190600101906118f6565b505050505087612f44565b600061197433838e8e8e8e8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c92506130d1915050565b905060005b8b811015611b3f576000609760008f8f8581811061199957611999615566565b919091013560f81c82525060208082019290925260409081016000208151606081018352905463ffffffff811680835261ffff600160201b8304811695840195909552600160301b90910490931691810191909152845180519193509084908110611a0657611a06615566565b602002602001015163ffffffff161115611b2c57611aa78e8e84818110611a2f57611a2f615566565b9050013560f81c60f81b60f81c84604001518481518110611a5257611a52615566565b60200260200101513386602001518681518110611a7157611a71615566565b60200260200101518d8d88818110611a8b57611a8b615566565b905060400201803603810190611aa1919061580b565b866135e8565b611b2c898984818110611abc57611abc615566565b9050604002016020016020810190611ad49190614ab5565b8f8f8590866001611ae59190615744565b92611af29392919061575c565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061294f92505050565b5080611b3781615592565b915050611979565b50505050505050505050505050565b600180546000919081161415611b765760405162461bcd60e51b81526004016108499061552f565b6000611b823385612e13565b90506000611bcb33838b8b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c92506130d1915050565b51905060005b88811015611cc65760008a8a83818110611bed57611bed615566565b919091013560f81c600081815260976020526040902054855191935063ffffffff169150849084908110611c2357611c23615566565b602002602001015163ffffffff161115611cb35760405162461bcd60e51b8152602060048201526044602482018190527f5265676973747279436f6f7264696e61746f722e72656769737465724f706572908201527f61746f723a206f70657261746f7220636f756e742065786365656473206d6178606482015263696d756d60e01b608482015260a401610849565b5080611cbe81615592565b915050611bd1565b50505050505050505050565b6060600082516001600160401b03811115611cef57611cef614959565b604051908082528060200260200182016040528015611d18578160200160208202803683370190505b50905060005b8351811015611d8357611d4a85858381518110611d3d57611d3d615566565b60200260200101516138bd565b828281518110611d5c57611d5c615566565b63ffffffff9092166020928302919091019091015280611d7b81615592565b915050611d1e565b509392505050565b6001805460029081161415611db25760405162461bcd60e51b81526004016108499061552f565b6116a53384848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061294f92505050565b611dfa612602565b6116a58383836139f9565b600054610100900460ff1615808015611e255750600054600160ff909116105b80611e3f5750303b158015611e3f575060005460ff166001145b611ea25760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610849565b6000805460ff191660011790558015611ec5576000805461ff0019166101001790555b82518451148015611ed7575081518351145b611f415760405162461bcd60e51b815260206004820152603560248201527f5265676973747279436f6f7264696e61746f722e696e697469616c697a653a206044820152740d2dce0eae840d8cadccee8d040dad2e6dac2e8c6d605b1b6064820152608401610849565b611f4a89612dc1565b611f548686613c10565b611f5d88612661565b611f66876126ca565b609c80546001818101835560008381527faf85b9071dfafeac1409d3f1d19bafc9bc7c37974cde8df0ee6168f0086e539c92830180546001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166001600160a01b03199283161790925585548085018755850180547f0000000000000000000000000000000000000000000000000000000000000000841690831617905585549384019095559190920180547f000000000000000000000000000000000000000000000000000000000000000090921691909316179091555b84518110156120b7576120a585828151811061206457612064615566565b602002602001015185838151811061207e5761207e615566565b602002602001015185848151811061209857612098615566565b60200260200101516139f9565b806120af81615592565b915050612046565b5080156120fe576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b612111612602565b6001600160a01b0381166121765760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610849565b610cc481612dc1565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121f6919061560d565b6001600160a01b0316336001600160a01b0316146122265760405162461bcd60e51b81526004016108499061562a565b6001541981196001541916146122a45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610849565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610c09565b600081815260986020526040812054806122f85750600092915050565b6000838152609860205260409020612311600183615827565b8154811061232157612321615566565b600091825260209091200154600160401b90046001600160c01b03169392505050565b606060008061235284613d00565b61ffff166001600160401b0381111561236d5761236d614959565b6040519080825280601f01601f191660200182016040528015612397576020820181803683370190505b5090506000805b8251821080156123af575061010081105b15612406576001811b9350858416156123f6578060f81b8383815181106123d8576123d8615566565b60200101906001600160f81b031916908160001a9053508160010191505b6123ff81615592565b905061239e565b5090949350505050565b60018260200151600281111561242857612428614be3565b1461243257505050565b81516040516333567f7f60e11b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906366acfefe906124879088908690889060040161583e565b6020604051808303816000875af11580156124a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ca919061586e565b90506001600160c01b038116156124f6576124f6856124f1836001600160c01b0316612344565b61294f565b5050505050565b6001600160a01b03811661258b5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610849565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b3361260b6117fd565b6001600160a01b0316146117a65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610849565b609d54604080516001600160a01b03928316815291831660208301527f315457d8a8fe60f04af17c16e2f5a5e1db612b31648e58030360759ef8f3528c910160405180910390a1609d80546001600160a01b0319166001600160a01b0392909216919091179055565b609e54604080516001600160a01b03928316815291831660208301527f8f30ab09f43a6c157d7fce7e0a13c003042c1c95e8a72e7a146a21c0caa24dc9910160405180910390a1609e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610e8f612740613d2b565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6040805180820190915260008082526020820152600080806127b1600080516020615d6e833981519152866158ad565b90505b6127bd81613e52565b9093509150600080516020615d6e8339815191528283098314156127f7576040805180820190915290815260208101919091529392505050565b600080516020615d6e8339815191526001820890506127b4565b60008061281d84613ed4565b9050808360ff166001901b1161289b5760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610849565b9392505050565b60ff8216600081815260976020908152604091829020845181548684018051888701805163ffffffff90951665ffffffffffff199094168417600160201b61ffff938416021767ffff0000000000001916600160301b95831695909502949094179094558551918252518316938101939093525116918101919091527f3ee6fe8d54610244c3e9d3c066ae4aee997884aa28f10616ae821925401318ac9060600160405180910390a25050565b6001600160a01b0382166000908152609960205260409020805460018083015460ff16600281111561298357612983614be3565b14612a025760405162461bcd60e51b815260206004820152604360248201527f5265676973747279436f6f7264696e61746f722e5f646572656769737465724f60448201527f70657261746f723a206f70657261746f72206973206e6f7420726567697374656064820152621c995960ea1b608482015260a401610849565b609654600090612a1690859060ff16612811565b90506000612a23836122db565b90506001600160c01b038216612aa15760405162461bcd60e51b815260206004820152603b60248201527f5265676973747279436f6f7264696e61746f722e5f646572656769737465724f60448201527f70657261746f723a206269746d61702063616e6e6f74206265203000000000006064820152608401610849565b612ab86001600160c01b0383811690831681161490565b612b505760405162461bcd60e51b815260206004820152605960248201527f5265676973747279436f6f7264696e61746f722e5f646572656769737465724f60448201527f70657261746f723a206f70657261746f72206973206e6f74207265676973746560648201527f72656420666f72207370656369666965642071756f72756d7300000000000000608482015260a401610849565b6001600160c01b0382811619821616612b698482614061565b6001600160c01b038116612c385760018501805460ff191660021790556040516351b27a6d60e11b81526001600160a01b0388811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a364f4da90602401600060405180830381600087803b158015612be957600080fd5b505af1158015612bfd573d6000803e3d6000fd5b50506040518692506001600160a01b038a1691507f396fdcb180cb0fea26928113fb0fd1c3549863f9cd563e6a184f1d578116c8e490600090a35b60405163f4e24fe560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f4e24fe590612c86908a908a906004016158c1565b600060405180830381600087803b158015612ca057600080fd5b505af1158015612cb4573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016925063bd29b8cd9150612d069087908a906004016158e5565b600060405180830381600087803b158015612d2057600080fd5b505af1158015612d34573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016925063bd29b8cd9150612d869087908a906004016158e5565b600060405180830381600087803b158015612da057600080fd5b505af1158015612db4573d6000803e3d6000fd5b5050505050505050505050565b606480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040516309aa152760e11b81526001600160a01b0383811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906313542a4e90602401602060405180830381865afa158015612e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ea291906158fe565b905080610e8f577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bf79ce588484612ee387610f43565b6040518463ffffffff1660e01b8152600401612f0193929190615917565b6020604051808303816000875af1158015612f20573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061289b91906158fe565b6020808201516000908152609a909152604090205460ff1615612fea5760405162461bcd60e51b815260206004820152605260248201527f5265676973747279436f6f7264696e61746f722e5f766572696679436875726e60448201527f417070726f7665725369676e61747572653a20636875726e417070726f766572606482015271081cd85b1d08185b1c9958591e481d5cd95960721b608482015260a401610849565b428160400151101561307f5760405162461bcd60e51b815260206004820152605260248201527f5265676973747279436f6f7264696e61746f722e5f766572696679436875726e60448201527f417070726f7665725369676e61747572653a20636875726e417070726f766572606482015271081cda59db985d1d5c9948195e1c1a5c995960721b608482015260a401610849565b602080820180516000908152609a909252604091829020805460ff19166001179055609d54905191830151610930926001600160a01b03909216916130ca91889188918891906117a8565b8351614221565b6130f560405180606001604052806060815260200160608152602001606081525090565b600061313d86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506128119050565b9050600061314a886122db565b90506001600160c01b0382166131c85760405162461bcd60e51b815260206004820152603960248201527f5265676973747279436f6f7264696e61746f722e5f72656769737465724f706560448201527f7261746f723a206269746d61702063616e6e6f742062652030000000000000006064820152608401610849565b8082166001600160c01b03161561327e5760405162461bcd60e51b815260206004820152606860248201527f5265676973747279436f6f7264696e61746f722e5f72656769737465724f706560448201527f7261746f723a206f70657261746f7220616c726561647920726567697374657260648201527f656420666f7220736f6d652071756f72756d73206265696e672072656769737460848201526732b932b2103337b960c11b60a482015260c401610849565b6001600160c01b03818116908316176132978982614061565b887fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa876040516132c791906155fa565b60405180910390a260016001600160a01b038b1660009081526099602052604090206001015460ff16600281111561330157613301614be3565b1461341a576040805180820182528a8152600160208083018281526001600160a01b038f166000908152609990925293902082518155925183820180549394939192909160ff19169083600281111561335c5761335c614be3565b021790555050604051639926ee7d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169150639926ee7d906133b1908d908990600401615996565b600060405180830381600087803b1580156133cb57600080fd5b505af11580156133df573d6000803e3d6000fd5b50506040518b92506001600160a01b038d1691507fe8e68cef1c3a761ed7be7e8463a375f27f7bc335e51824223cacce636ec5c3fe90600090a35b604051631fd93ca960e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633fb279529061346a908d908c908c90600401615a0a565b600060405180830381600087803b15801561348457600080fd5b505af1158015613498573d6000803e3d6000fd5b5050604051632550477760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169250632550477791506134ee908d908d908d908d90600401615a2f565b6000604051808303816000875af115801561350d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526135359190810190615abb565b60408087019190915260208601919091525162bff04d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169062bff04d90613592908c908c908c90600401615b1e565b6000604051808303816000875af11580156135b1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526135d99190810190615b38565b84525050509695505050505050565b6020808301516001600160a01b0380821660008181526099909452604090932054919290871614156136685760405162461bcd60e51b81526020600482015260356024820152600080516020615d4e83398151915260448201527439371d1031b0b73737ba1031b43ab9371039b2b63360591b6064820152608401610849565b8760ff16846000015160ff16146136e55760405162461bcd60e51b81526020600482015260476024820152600080516020615d4e83398151915260448201527f726e3a2071756f72756d4e756d626572206e6f74207468652073616d65206173606482015266081cda59db995960ca1b608482015260a401610849565b604051635401ed2760e01b81526004810182905260ff891660248201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635401ed2790604401602060405180830381865afa158015613756573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061377a9190615bd1565b905061378681856143db565b6001600160601b0316866001600160601b0316116138195760405162461bcd60e51b81526020600482015260566024820152600080516020615d4e83398151915260448201527f726e3a20696e636f6d696e67206f70657261746f722068617320696e7375666660648201527534b1b4b2b73a1039ba30b5b2903337b91031b43ab93760511b608482015260a401610849565b61382388856143ff565b6001600160601b0316816001600160601b0316106120fe5760405162461bcd60e51b815260206004820152605c6024820152600080516020615d4e83398151915260448201527f726e3a2063616e6e6f74206b69636b206f70657261746f722077697468206d6f60648201527f7265207468616e206b69636b424950734f66546f74616c5374616b6500000000608482015260a401610849565b600081815260986020526040812054815b8181101561394f5760016138e28284615827565b6138ec9190615827565b92508463ffffffff16609860008681526020019081526020016000208463ffffffff168154811061391f5761391f615566565b60009182526020909120015463ffffffff161161393d575050610e8f565b8061394781615592565b9150506138ce565b5060405162461bcd60e51b815260206004820152606c60248201527f5265676973747279436f6f7264696e61746f722e67657451756f72756d42697460448201527f6d6170496e6465784174426c6f636b4e756d6265723a206e6f206269746d617060648201527f2075706461746520666f756e6420666f72206f70657261746f7249642061742060848201526b313637b1b590373ab6b132b960a11b60a482015260c401610849565b60965460ff1660c08110613a6d5760405162461bcd60e51b815260206004820152603560248201527f5265676973747279436f6f7264696e61746f722e63726561746551756f72756d6044820152740e881b585e081c5d5bdc9d5b5cc81c995858da1959605a1b6064820152608401610849565b613a78816001615bee565b6096805460ff191660ff9290921691909117905580613a9781866128a2565b60405160016296b58960e01b031981526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ff694a7790613aea90849088908890600401615c13565b600060405180830381600087803b158015613b0457600080fd5b505af1158015613b18573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506326d941f29150602401600060405180830381600087803b158015613b8057600080fd5b505af1158015613b94573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506326d941f29150602401600060405180830381600087803b158015613bfc57600080fd5b505af11580156120fe573d6000803e3d6000fd5b6000546201000090046001600160a01b0316158015613c3757506001600160a01b03821615155b613cb95760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610849565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2613cfc826124fd565b5050565b6000805b8215610e8f57613d15600184615827565b9092169180613d2381615c8c565b915050613d04565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015613d8457507f000000000000000000000000000000000000000000000000000000000000000046145b15613dae57507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b60008080600080516020615d6e8339815191526003600080516020615d6e83398151915286600080516020615d6e833981519152888909090890506000613ec8827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52600080516020615d6e833981519152614419565b91959194509092505050565b600061010082511115613f5d5760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610849565b8151613f6b57506000919050565b60008083600081518110613f8157613f81615566565b0160200151600160f89190911c81901b92505b845181101561405857848181518110613faf57613faf615566565b0160200151600160f89190911c1b91508282116140445760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610849565b9181179161405181615592565b9050613f94565b50909392505050565b60008281526098602052604090205480614106576000838152609860209081526040808320815160608101835263ffffffff43811682528185018681526001600160c01b03808a16958401958652845460018101865594885295909620915191909201805495519351909416600160401b026001600160401b03938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055505050565b600083815260986020526040812061411f600184615827565b8154811061412f5761412f615566565b600091825260209091200180549091504363ffffffff908116911614156141735780546001600160401b0316600160401b6001600160c01b03851602178155610930565b805463ffffffff438116600160201b81810267ffffffff0000000019909416939093178455600087815260986020908152604080832081516060810183529485528483018481526001600160c01b03808c1693870193845282546001810184559286529390942094519401805493519151909216600160401b026001600160401b0391861690960267ffffffffffffffff199093169390941692909217179190911691909117905550505050565b6001600160a01b0383163b1561433b57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e9061426190869086906004016158e5565b602060405180830381865afa15801561427e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142a29190615cae565b6001600160e01b031916146116a55760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610849565b826001600160a01b031661434f83836144c8565b6001600160a01b0316146116a55760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610849565b6020810151600090612710906143f59061ffff1685615cd8565b61289b9190615d07565b6040810151600090612710906143f59061ffff1685615cd8565b600080614424614835565b61442c614853565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa925082801561446d5761446f565bfe5b50826144bd5760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610849565b505195945050505050565b60008060006144d785856144e4565b91509150611d8381614554565b60008082516041141561451b5760208301516040840151606085015160001a61450f8782858561470f565b9450945050505061454d565b825160401415614545576020830151604084015161453a8683836147fc565b93509350505061454d565b506000905060025b9250929050565b600081600481111561456857614568614be3565b14156145715750565b600181600481111561458557614585614be3565b14156145d35760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610849565b60028160048111156145e7576145e7614be3565b14156146355760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610849565b600381600481111561464957614649614be3565b14156146a25760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610849565b60048160048111156146b6576146b6614be3565b1415610cc45760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610849565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561474657506000905060036147f3565b8460ff16601b1415801561475e57508460ff16601c14155b1561476f57506000905060046147f3565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156147c3573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166147ec576000600192509250506147f3565b9150600090505b94509492505050565b6000806001600160ff1b0383168161481960ff86901c601b615744565b90506148278782888561470f565b935093505050935093915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60008083601f84011261488357600080fd5b5081356001600160401b0381111561489a57600080fd5b6020830191508360208260051b850101111561454d57600080fd5b600080602083850312156148c857600080fd5b82356001600160401b038111156148de57600080fd5b6148ea85828601614871565b90969095509350505050565b60006020828403121561490857600080fd5b5035919050565b63ffffffff81168114610cc457600080fd5b60008060006060848603121561493657600080fd5b8335925060208401356149488161490f565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b038111828210171561499157614991614959565b60405290565b604080519081016001600160401b038111828210171561499157614991614959565b604051601f8201601f191681016001600160401b03811182821017156149e1576149e1614959565b604052919050565b60006001600160401b03831115614a0257614a02614959565b614a15601f8401601f19166020016149b9565b9050828152838383011115614a2957600080fd5b828260208301376000602084830101529392505050565b600060208284031215614a5257600080fd5b81356001600160401b03811115614a6857600080fd5b8201601f81018413614a7957600080fd5b614a88848235602084016149e9565b949350505050565b6001600160a01b0381168114610cc457600080fd5b8035614ab081614a90565b919050565b600060208284031215614ac757600080fd5b813561289b81614a90565b60008060408385031215614ae557600080fd5b50508035926020909101359150565b803560ff81168114614ab057600080fd5b600060208284031215614b1757600080fd5b61289b82614af4565b815181526020808301519082015260408101610e8f565b60008083601f840112614b4957600080fd5b5081356001600160401b03811115614b6057600080fd5b60208301915083602082850101111561454d57600080fd5b60008060008060408587031215614b8e57600080fd5b84356001600160401b0380821115614ba557600080fd5b614bb188838901614871565b90965094506020870135915080821115614bca57600080fd5b50614bd787828801614b37565b95989497509550505050565b634e487b7160e01b600052602160045260246000fd5b60038110614c1757634e487b7160e01b600052602160045260246000fd5b9052565b815181526020808301516040830191614c3690840182614bf9565b5092915050565b803561ffff81168114614ab057600080fd5b600060608284031215614c6157600080fd5b614c6961496f565b90508135614c768161490f565b8152614c8460208301614c3d565b6020820152614c9560408301614c3d565b604082015292915050565b60008060808385031215614cb357600080fd5b614cbc83614af4565b9150614ccb8460208501614c4f565b90509250929050565b600080600060408486031215614ce957600080fd5b8335614cf481614a90565b925060208401356001600160401b03811115614d0f57600080fd5b614d1b86828701614b37565b9497909650939450505050565b60006001600160401b03821115614d4157614d41614959565b5060051b60200190565b600060408284031215614d5d57600080fd5b614d65614997565b9050614d7082614af4565b81526020820135614d8081614a90565b602082015292915050565b600080600080600060a08688031215614da357600080fd5b8535614dae81614a90565b945060208681013594506040808801356001600160401b03811115614dd257600080fd5b8801601f81018a13614de357600080fd5b8035614df6614df182614d28565b6149b9565b81815260069190911b8201840190848101908c831115614e1557600080fd5b928501925b82841015614e3b57614e2c8d85614d4b565b82529284019290850190614e1a565b999c989b5098996060810135995060800135979650505050505050565b60006101008284031215614e6b57600080fd5b50919050565b60008083601f840112614e8357600080fd5b5081356001600160401b03811115614e9a57600080fd5b6020830191508360208260061b850101111561454d57600080fd5b600060608284031215614ec757600080fd5b614ecf61496f565b905081356001600160401b03811115614ee757600080fd5b8201601f81018413614ef857600080fd5b614f07848235602084016149e9565b825250602082013560208201526040820135604082015292915050565b60008060008060008060008060006101a08a8c031215614f4357600080fd5b89356001600160401b0380821115614f5a57600080fd5b614f668d838e01614b37565b909b50995060208c0135915080821115614f7f57600080fd5b614f8b8d838e01614b37565b9099509750879150614fa08d60408e01614e58565b96506101408c0135915080821115614fb757600080fd5b614fc38d838e01614e71565b90965094506101608c0135915080821115614fdd57600080fd5b614fe98d838e01614eb5565b93506101808c013591508082111561500057600080fd5b5061500d8c828d01614eb5565b9150509295985092959850929598565b600080600080600080610160878903121561503757600080fd5b86356001600160401b038082111561504e57600080fd5b61505a8a838b01614b37565b9098509650602089013591508082111561507357600080fd5b61507f8a838b01614b37565b90965094508491506150948a60408b01614e58565b93506101408901359150808211156150ab57600080fd5b506150b889828a01614eb5565b9150509295509295509295565b600080604083850312156150d857600080fd5b82356150e38161490f565b91506020838101356001600160401b038111156150ff57600080fd5b8401601f8101861361511057600080fd5b803561511e614df182614d28565b81815260059190911b8201830190838101908883111561513d57600080fd5b928401925b8284101561515b57833582529284019290840190615142565b80955050505050509250929050565b6020808252825182820181905260009190848201906040850190845b818110156151a857835163ffffffff1683529284019291840191600101615186565b50909695505050505050565b600080602083850312156151c757600080fd5b82356001600160401b038111156151dd57600080fd5b6148ea85828601614b37565b6001600160601b0381168114610cc457600080fd5b600082601f83011261520f57600080fd5b8135602061521f614df183614d28565b82815260069290921b8401810191818101908684111561523e57600080fd5b8286015b8481101561528f576040818903121561525b5760008081fd5b615263614997565b813561526e81614a90565b81528185013561527d816151e9565b81860152835291830191604001615242565b509695505050505050565b600080600060a084860312156152af57600080fd5b6152b98585614c4f565b925060608401356152c9816151e9565b915060808401356001600160401b038111156152e457600080fd5b6152f0868287016151fe565b9150509250925092565b600082601f83011261530b57600080fd5b8135602061531b614df183614d28565b8281526060928302850182019282820191908785111561533a57600080fd5b8387015b8581101561535d576153508982614c4f565b845292840192810161533e565b5090979650505050505050565b600082601f83011261537b57600080fd5b8135602061538b614df183614d28565b82815260059290921b840181019181810190868411156153aa57600080fd5b8286015b8481101561528f5780356153c1816151e9565b83529183019183016153ae565b600082601f8301126153df57600080fd5b813560206153ef614df183614d28565b82815260059290921b8401810191818101908684111561540e57600080fd5b8286015b8481101561528f5780356001600160401b038111156154315760008081fd5b61543f8986838b01016151fe565b845250918301918301615412565b600080600080600080600080610100898b03121561546a57600080fd5b61547389614aa5565b975061548160208a01614aa5565b965061548f60408a01614aa5565b955061549d60608a01614aa5565b94506080890135935060a08901356001600160401b03808211156154c057600080fd5b6154cc8c838d016152fa565b945060c08b01359150808211156154e257600080fd5b6154ee8c838d0161536a565b935060e08b013591508082111561550457600080fd5b506155118b828c016153ce565b9150509295985092959890939650565b60208101610e8f8284614bf9565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156155a6576155a661557c565b5060010190565b6000815180845260005b818110156155d3576020818501810151868301820152016155b7565b818111156155e5576000602083870101525b50601f01601f19169290920160200192915050565b60208152600061289b60208301846155ad565b60006020828403121561561f57600080fd5b815161289b81614a90565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561568657600080fd5b8151801515811461289b57600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000808335601e198436030181126156f557600080fd5b8301803591506001600160401b0382111561570f57600080fd5b6020019150600581901b360382131561454d57600080fd5b60006020828403121561573957600080fd5b815161289b8161490f565b600082198211156157575761575761557c565b500190565b6000808585111561576c57600080fd5b8386111561577957600080fd5b5050820193919092039150565b600060c08201888352602060018060a01b03808a16828601526040898187015260c0606087015283895180865260e088019150848b01955060005b818110156157eb578651805160ff16845286015185168684015295850195918301916001016157c1565b505060808701989098525050505060a09091019190915250949350505050565b60006040828403121561581d57600080fd5b61289b8383614d4b565b6000828210156158395761583961557c565b500390565b60018060a01b038416815282602082015260606040820152600061586560608301846155ad565b95945050505050565b60006020828403121561588057600080fd5b81516001600160c01b038116811461289b57600080fd5b634e487b7160e01b600052601260045260246000fd5b6000826158bc576158bc615897565b500690565b6001600160a01b0383168152604060208201819052600090614a88908301846155ad565b828152604060208201526000614a8860408301846155ad565b60006020828403121561591057600080fd5b5051919050565b6001600160a01b0384168152610160810161593f602083018580358252602090810135910152565b615959606083016040860180358252602090810135910152565b60406080850160a084013760e0820160008152604060c0860182375060006101208301908152835190526020909201516101409091015292915050565b60018060a01b03831681526040602082015260008251606060408401526159c060a08401826155ad565b90506020840151606084015260408401516080840152809150509392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b038416815260406020820181905260009061586590830184866159e1565b60018060a01b03851681528360208201526060604082015260006117e86060830184866159e1565b600082601f830112615a6857600080fd5b81516020615a78614df183614d28565b82815260059290921b84018101918181019086841115615a9757600080fd5b8286015b8481101561528f578051615aae816151e9565b8352918301918301615a9b565b60008060408385031215615ace57600080fd5b82516001600160401b0380821115615ae557600080fd5b615af186838701615a57565b93506020850151915080821115615b0757600080fd5b50615b1485828601615a57565b9150509250929050565b8381526040602082015260006158656040830184866159e1565b60006020808385031215615b4b57600080fd5b82516001600160401b03811115615b6157600080fd5b8301601f81018513615b7257600080fd5b8051615b80614df182614d28565b81815260059190911b82018301908381019087831115615b9f57600080fd5b928401925b82841015615bc6578351615bb78161490f565b82529284019290840190615ba4565b979650505050505050565b600060208284031215615be357600080fd5b815161289b816151e9565b600060ff821660ff84168060ff03821115615c0b57615c0b61557c565b019392505050565b60006060820160ff8616835260206001600160601b03808716828601526040606081870152838751808652608088019150848901955060005b81811015615c7c57865180516001600160a01b031684528601518516868401529585019591830191600101615c4c565b50909a9950505050505050505050565b600061ffff80831681811415615ca457615ca461557c565b6001019392505050565b600060208284031215615cc057600080fd5b81516001600160e01b03198116811461289b57600080fd5b60006001600160601b0380831681851681830481118215151615615cfe57615cfe61557c565b02949350505050565b60006001600160601b0380841680615d2157615d21615897565b9216919091049291505056fe5265676973747279436f6f7264696e61746f722e7570646174654f70657261745265676973747279436f6f7264696e61746f722e5f76616c696461746543687530644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47a264697066735822122069bb4b7a841352b2cdf20387eb7f31e690b662b8fb761acf6a569a28683afd2e64736f6c634300080c0033", + ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_serviceManager\",\"type\":\"address\",\"internalType\":\"contractIServiceManager\"},{\"name\":\"_stakeRegistry\",\"type\":\"address\",\"internalType\":\"contractIStakeRegistry\"},{\"name\":\"_blsApkRegistry\",\"type\":\"address\",\"internalType\":\"contractIBLSApkRegistry\"},{\"name\":\"_indexRegistry\",\"type\":\"address\",\"internalType\":\"contractIIndexRegistry\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"OPERATOR_CHURN_APPROVAL_TYPEHASH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"PUBKEY_REGISTRATION_TYPEHASH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"blsApkRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIBLSApkRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"calculateOperatorChurnApprovalDigestHash\",\"inputs\":[{\"name\":\"registeringOperator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"registeringOperatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"operatorKickParams\",\"type\":\"tuple[]\",\"internalType\":\"structIRegistryCoordinator.OperatorKickParam[]\",\"components\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"churnApprover\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"createQuorum\",\"inputs\":[{\"name\":\"operatorSetParams\",\"type\":\"tuple\",\"internalType\":\"structIRegistryCoordinator.OperatorSetParam\",\"components\":[{\"name\":\"maxOperatorCount\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"kickBIPsOfOperatorStake\",\"type\":\"uint16\",\"internalType\":\"uint16\"},{\"name\":\"kickBIPsOfTotalStake\",\"type\":\"uint16\",\"internalType\":\"uint16\"}]},{\"name\":\"minimumStake\",\"type\":\"uint96\",\"internalType\":\"uint96\"},{\"name\":\"strategyParams\",\"type\":\"tuple[]\",\"internalType\":\"structIStakeRegistry.StrategyParams[]\",\"components\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"multiplier\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"deregisterOperator\",\"inputs\":[{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"ejectOperator\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"ejectionCooldown\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"ejector\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getCurrentQuorumBitmap\",\"inputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint192\",\"internalType\":\"uint192\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperator\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIRegistryCoordinator.OperatorInfo\",\"components\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"status\",\"type\":\"uint8\",\"internalType\":\"enumIRegistryCoordinator.OperatorStatus\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorFromId\",\"inputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorId\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorSetParams\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIRegistryCoordinator.OperatorSetParam\",\"components\":[{\"name\":\"maxOperatorCount\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"kickBIPsOfOperatorStake\",\"type\":\"uint16\",\"internalType\":\"uint16\"},{\"name\":\"kickBIPsOfTotalStake\",\"type\":\"uint16\",\"internalType\":\"uint16\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorStatus\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"enumIRegistryCoordinator.OperatorStatus\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getQuorumBitmapAtBlockNumberByIndex\",\"inputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"blockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"index\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint192\",\"internalType\":\"uint192\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getQuorumBitmapHistoryLength\",\"inputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getQuorumBitmapIndicesAtBlockNumber\",\"inputs\":[{\"name\":\"blockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorIds\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getQuorumBitmapUpdateByIndex\",\"inputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"index\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIRegistryCoordinator.QuorumBitmapUpdate\",\"components\":[{\"name\":\"updateBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"nextUpdateBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"quorumBitmap\",\"type\":\"uint192\",\"internalType\":\"uint192\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"indexRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIIndexRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"_initialOwner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_churnApprover\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_ejector\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_pauserRegistry\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"},{\"name\":\"_initialPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_operatorSetParams\",\"type\":\"tuple[]\",\"internalType\":\"structIRegistryCoordinator.OperatorSetParam[]\",\"components\":[{\"name\":\"maxOperatorCount\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"kickBIPsOfOperatorStake\",\"type\":\"uint16\",\"internalType\":\"uint16\"},{\"name\":\"kickBIPsOfTotalStake\",\"type\":\"uint16\",\"internalType\":\"uint16\"}]},{\"name\":\"_minimumStakes\",\"type\":\"uint96[]\",\"internalType\":\"uint96[]\"},{\"name\":\"_strategyParams\",\"type\":\"tuple[][]\",\"internalType\":\"structIStakeRegistry.StrategyParams[][]\",\"components\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"multiplier\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isChurnApproverSaltUsed\",\"inputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"lastEjectionTimestamp\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"numRegistries\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"pauseAll\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pauserRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pubkeyRegistrationMessageHash\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"quorumCount\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"quorumUpdateBlockNumber\",\"inputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"registerOperator\",\"inputs\":[{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"socket\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"params\",\"type\":\"tuple\",\"internalType\":\"structIBLSApkRegistry.PubkeyRegistrationParams\",\"components\":[{\"name\":\"pubkeyRegistrationSignature\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"pubkeyG1\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"pubkeyG2\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]}]},{\"name\":\"operatorSignature\",\"type\":\"tuple\",\"internalType\":\"structISignatureUtils.SignatureWithSaltAndExpiry\",\"components\":[{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"registerOperatorWithChurn\",\"inputs\":[{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"socket\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"params\",\"type\":\"tuple\",\"internalType\":\"structIBLSApkRegistry.PubkeyRegistrationParams\",\"components\":[{\"name\":\"pubkeyRegistrationSignature\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"pubkeyG1\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"pubkeyG2\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]}]},{\"name\":\"operatorKickParams\",\"type\":\"tuple[]\",\"internalType\":\"structIRegistryCoordinator.OperatorKickParam[]\",\"components\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"name\":\"churnApproverSignature\",\"type\":\"tuple\",\"internalType\":\"structISignatureUtils.SignatureWithSaltAndExpiry\",\"components\":[{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"operatorSignature\",\"type\":\"tuple\",\"internalType\":\"structISignatureUtils.SignatureWithSaltAndExpiry\",\"components\":[{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"registries\",\"inputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"serviceManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIServiceManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"setChurnApprover\",\"inputs\":[{\"name\":\"_churnApprover\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setEjectionCooldown\",\"inputs\":[{\"name\":\"_ejectionCooldown\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setEjector\",\"inputs\":[{\"name\":\"_ejector\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setOperatorSetParams\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"operatorSetParams\",\"type\":\"tuple\",\"internalType\":\"structIRegistryCoordinator.OperatorSetParam\",\"components\":[{\"name\":\"maxOperatorCount\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"kickBIPsOfOperatorStake\",\"type\":\"uint16\",\"internalType\":\"uint16\"},{\"name\":\"kickBIPsOfTotalStake\",\"type\":\"uint16\",\"internalType\":\"uint16\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setPauserRegistry\",\"inputs\":[{\"name\":\"newPauserRegistry\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"stakeRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStakeRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"unpause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateOperators\",\"inputs\":[{\"name\":\"operators\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateOperatorsForQuorum\",\"inputs\":[{\"name\":\"operatorsPerQuorum\",\"type\":\"address[][]\",\"internalType\":\"address[][]\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateSocket\",\"inputs\":[{\"name\":\"socket\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"ChurnApproverUpdated\",\"inputs\":[{\"name\":\"prevChurnApprover\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"newChurnApprover\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"EjectorUpdated\",\"inputs\":[{\"name\":\"prevEjector\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"newEjector\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorDeregistered\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operatorId\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorRegistered\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operatorId\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSetParamsUpdated\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"indexed\":true,\"internalType\":\"uint8\"},{\"name\":\"operatorSetParams\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structIRegistryCoordinator.OperatorSetParam\",\"components\":[{\"name\":\"maxOperatorCount\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"kickBIPsOfOperatorStake\",\"type\":\"uint16\",\"internalType\":\"uint16\"},{\"name\":\"kickBIPsOfTotalStake\",\"type\":\"uint16\",\"internalType\":\"uint16\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSocketUpdate\",\"inputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"socket\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"PauserRegistrySet\",\"inputs\":[{\"name\":\"pauserRegistry\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIPauserRegistry\"},{\"name\":\"newPauserRegistry\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIPauserRegistry\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"QuorumBlockNumberUpdated\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"indexed\":true,\"internalType\":\"uint8\"},{\"name\":\"blocknumber\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false}]", + Bin: "0x6101c06040523480156200001257600080fd5b506040516200638938038062006389833981016040819052620000359162000254565b604080518082018252601681527f4156535265676973747279436f6f7264696e61746f720000000000000000000060208083019182528351808501909452600684526576302e302e3160d01b908401528151902060e08190527f6bda7e3f385e48841048390444cced5cc795af87758af67622e5f4f0882c4a996101008190524660a05287938793879387939192917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f620001358184846040805160208101859052908101839052606081018290524660808201523060a082015260009060c0016040516020818303038152906040528051906020012090509392505050565b6080523060c05261012052505050506001600160a01b039384166101405291831661018052821661016052166101a0526200016f62000179565b50505050620002bc565b600054610100900460ff1615620001e65760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000239576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200025157600080fd5b50565b600080600080608085870312156200026b57600080fd5b845162000278816200023b565b60208601519094506200028b816200023b565b60408601519093506200029e816200023b565b6060860151909250620002b1816200023b565b939692955090935050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a051615fc5620003c4600039600081816106ab0152818161119d0152818161217301528181612ea50152818161375c0152613d340152600081816105f0015281816120fe015281816125a601528181612e25015281816136b3015281816139090152613cb30152600081816105b601528181610f380152818161213c01528181612da701528181612f8d01528181613003015281816136330152613db00152600081816104fa01528181612cfd015261357b01526000613fb70152600061400601526000613fe101526000613f3a01526000613f6401526000613f8e0152615fc56000f3fe608060405234801561001057600080fd5b50600436106102d55760003560e01c80635df45946116101825780639feab859116100e9578063d72d8dd6116100a2578063e65797ad1161007c578063e65797ad14610798578063f2fde38b1461083b578063fabc1cbc1461084e578063fd39105a1461086157600080fd5b8063d72d8dd61461076a578063d75b4c8814610772578063dd8283f31461078557600080fd5b80639feab859146106cd578063a50857bf146106f4578063a96f783e14610707578063c391425e14610710578063ca0de88214610730578063ca4f2d971461075757600080fd5b8063871ef0491161013b578063871ef04914610640578063886f1195146106535780638da5cb5b1461066c5780639aa1653d146106745780639b5d177b146106935780639e9923c2146106a657600080fd5b80635df45946146105b15780636347c900146105d857806368304835146105eb5780636e3b17db14610612578063715018a61461062557806384ca52131461062d57600080fd5b8063249a0c42116102415780633c2a7f4c116101fa578063595c6a67116101d4578063595c6a671461056f5780635ac86ab7146105775780635b0b829f146105965780635c975abb146105a957600080fd5b80633c2a7f4c1461051c5780635140a5481461053c5780635865c60c1461054f57600080fd5b8063249a0c421461048957806328f61b31146104a9578063296bb064146104bc57806329d1e0c3146104cf5780632cdd1e86146104e25780633998fdd3146104f557600080fd5b806310d67a2f1161029357806310d67a2f1461039e578063125e0584146103b157806313542a4e146103d1578063136439dd146103fa5780631478851f1461040d5780631eb812da1461044057600080fd5b8062cf2ab5146102da57806303fd3492146102ef57806304ec635114610322578063054310e61461034d5780630cf4b767146103785780630d3f21341461038b575b600080fd5b6102ed6102e8366004614ab7565b61089d565b005b61030f6102fd366004614af8565b60009081526098602052604090205490565b6040519081526020015b60405180910390f35b610335610330366004614b23565b6109b3565b6040516001600160c01b039091168152602001610319565b609d54610360906001600160a01b031681565b6040516001600160a01b039091168152602001610319565b6102ed610386366004614c42565b610ba9565b6102ed610399366004614af8565b610c91565b6102ed6103ac366004614cb7565b610c9e565b61030f6103bf366004614cb7565b609f6020526000908152604090205481565b61030f6103df366004614cb7565b6001600160a01b031660009081526099602052604090205490565b6102ed610408366004614af8565b610d51565b61043061041b366004614af8565b609a6020526000908152604090205460ff1681565b6040519015158152602001610319565b61045361044e366004614cd4565b610e8e565b60408051825163ffffffff908116825260208085015190911690820152918101516001600160c01b031690820152606001610319565b61030f610497366004614d07565b609b6020526000908152604090205481565b609e54610360906001600160a01b031681565b6103606104ca366004614af8565b610f1f565b6102ed6104dd366004614cb7565b610fab565b6102ed6104f0366004614cb7565b610fbc565b6103607f000000000000000000000000000000000000000000000000000000000000000081565b61052f61052a366004614cb7565b610fcd565b6040516103199190614d22565b6102ed61054a366004614d7a565b61104c565b61056261055d366004614cb7565b61155d565b6040516103199190614e1d565b6102ed6115d1565b610430610585366004614d07565b6001805460ff9092161b9081161490565b6102ed6105a4366004614ea2565b61169d565b60015461030f565b6103607f000000000000000000000000000000000000000000000000000000000000000081565b6103606105e6366004614af8565b611734565b6103607f000000000000000000000000000000000000000000000000000000000000000081565b6102ed610620366004614ed6565b61175e565b6102ed6118ec565b61030f61063b366004614f8d565b611900565b61033561064e366004614af8565b61194a565b600054610360906201000090046001600160a01b031681565b610360611955565b6096546106819060ff1681565b60405160ff9091168152602001610319565b6102ed6106a1366004615126565b61196e565b6103607f000000000000000000000000000000000000000000000000000000000000000081565b61030f7f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de681565b6102ed61070236600461521f565b611ca6565b61030f60a05481565b61072361071e3660046152c7565b611e2a565b604051610319919061536c565b61030f7f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a81565b6102ed6107653660046153b6565b611ee3565b609c5461030f565b6102ed61078036600461549c565b611f4a565b6102ed61079336600461564f565b611f5d565b6108076107a6366004614d07565b60408051606080820183526000808352602080840182905292840181905260ff9490941684526097825292829020825193840183525463ffffffff8116845261ffff600160201b8204811692850192909252600160301b9004169082015290565b60408051825163ffffffff16815260208084015161ffff908116918301919091529282015190921690820152606001610319565b6102ed610849366004614cb7565b612261565b6102ed61085c366004614af8565b6122d7565b61089061086f366004614cb7565b6001600160a01b031660009081526099602052604090206001015460ff1690565b6040516103199190615723565b600154600290600490811614156108cf5760405162461bcd60e51b81526004016108c690615731565b60405180910390fd5b60005b828110156109ad5760008484838181106108ee576108ee615768565b90506020020160208101906109039190614cb7565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff16600281111561094e5761094e614de5565b600281111561095f5761095f614de5565b9052508051909150600061097282612433565b90506000610988826001600160c01b031661249c565b9050610995858583612568565b505050505080806109a590615794565b9150506108d2565b50505050565b60008381526098602052604081208054829190849081106109d6576109d6615768565b600091825260209182902060408051606081018252929091015463ffffffff808216808552600160201b8304821695850195909552600160401b9091046001600160c01b03169183019190915290925085161015610ad05760405162461bcd60e51b815260206004820152606560248201527f5265676973747279436f6f7264696e61746f722e67657451756f72756d42697460448201527f6d61704174426c6f636b4e756d6265724279496e6465783a2071756f72756d4260648201527f69746d61705570646174652069732066726f6d20616674657220626c6f636b4e6084820152643ab6b132b960d91b60a482015260c4016108c6565b602081015163ffffffff161580610af65750806020015163ffffffff168463ffffffff16105b610b9d5760405162461bcd60e51b815260206004820152606660248201527f5265676973747279436f6f7264696e61746f722e67657451756f72756d42697460448201527f6d61704174426c6f636b4e756d6265724279496e6465783a2071756f72756d4260648201527f69746d61705570646174652069732066726f6d206265666f726520626c6f636b608482015265273ab6b132b960d11b60a482015260c4016108c6565b60400151949350505050565b60013360009081526099602052604090206001015460ff166002811115610bd257610bd2614de5565b14610c455760405162461bcd60e51b815260206004820152603c60248201527f5265676973747279436f6f7264696e61746f722e757064617465536f636b657460448201527f3a206f70657261746f72206973206e6f7420726567697374657265640000000060648201526084016108c6565b33600090815260996020526040908190205490517fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa90610c869084906157fc565b60405180910390a250565b610c99612655565b60a055565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cf1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d15919061580f565b6001600160a01b0316336001600160a01b031614610d455760405162461bcd60e51b81526004016108c69061582c565b610d4e816126b4565b50565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610d9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc29190615876565b610dde5760405162461bcd60e51b81526004016108c690615898565b60015481811614610e575760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c697479000000000000000060648201526084016108c6565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d90602001610c86565b60408051606081018252600080825260208201819052918101919091526000838152609860205260409020805483908110610ecb57610ecb615768565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160c01b03600160401b909304929092169082015290505b92915050565b6040516308f6629d60e31b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906347b314e890602401602060405180830381865afa158015610f87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f19919061580f565b610fb3612655565b610d4e816127b9565b610fc4612655565b610d4e81612822565b6040805180820190915260008082526020820152610f196110477f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de68460405160200161102c9291909182526001600160a01b0316602082015260400190565b6040516020818303038152906040528051906020012061288b565b6128d9565b600154600290600490811614156110755760405162461bcd60e51b81526004016108c690615731565b60006110bd84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506129699050565b905084831461112e5760405162461bcd60e51b81526020600482015260436024820152600080516020615f3083398151915260448201527f6f7273466f7251756f72756d3a20696e707574206c656e677468206d69736d616064820152620e8c6d60eb1b608482015260a4016108c6565b60005b8381101561155457600085858381811061114d5761114d615768565b919091013560f81c9150369050600089898581811061116e5761116e615768565b905060200281019061118091906158e0565b6040516379a0849160e11b815260ff8616600482015291935091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f341092290602401602060405180830381865afa1580156111ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112109190615929565b63ffffffff1681146112ac5760405162461bcd60e51b81526020600482015260656024820152600080516020615f3083398151915260448201527f6f7273466f7251756f72756d3a206e756d626572206f6620757064617465642060648201527f6f70657261746f727320646f6573206e6f74206d617463682071756f72756d206084820152641d1bdd185b60da1b60a482015260c4016108c6565b6000805b828110156114f35760008484838181106112cc576112cc615768565b90506020020160208101906112e19190614cb7565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff16600281111561132c5761132c614de5565b600281111561133d5761133d614de5565b9052508051909150600061135082612433565b905060016001600160c01b03821660ff8b161c8116146113d45760405162461bcd60e51b815260206004820152604460248201819052600080516020615f30833981519152908201527f6f7273466f7251756f72756d3a206f70657261746f72206e6f7420696e2071756064820152636f72756d60e01b608482015260a4016108c6565b856001600160a01b0316846001600160a01b03161161147f5760405162461bcd60e51b81526020600482015260676024820152600080516020615f3083398151915260448201527f6f7273466f7251756f72756d3a206f70657261746f7273206172726179206d7560648201527f737420626520736f7274656420696e20617363656e64696e6720616464726573608482015266399037b93232b960c91b60a482015260c4016108c6565b506114dd83838f8f8d908e60016114969190615946565b926114a39392919061595e565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061256892505050565b509092506114ec905081615794565b90506112b0565b5060ff84166000818152609b6020908152604091829020439081905591519182527f46077d55330763f16269fd75e5761663f4192d2791747c0189b16ad31db07db4910160405180910390a2505050508061154d90615794565b9050611131565b50505050505050565b60408051808201909152600080825260208201526001600160a01b0382166000908152609960209081526040918290208251808401909352805483526001810154909183019060ff1660028111156115b7576115b7614de5565b60028111156115c8576115c8614de5565b90525092915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa15801561161e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116429190615876565b61165e5760405162461bcd60e51b81526004016108c690615898565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6116a5612655565b609654829060ff908116908216106117255760405162461bcd60e51b815260206004820152603760248201527f5265676973747279436f6f7264696e61746f722e71756f72756d45786973747360448201527f3a2071756f72756d20646f6573206e6f7420657869737400000000000000000060648201526084016108c6565b61172f83836129fa565b505050565b609c818154811061174457600080fd5b6000918252602090912001546001600160a01b0316905081565b609e546001600160a01b031633146117de5760405162461bcd60e51b815260206004820152603a60248201527f5265676973747279436f6f7264696e61746f722e6f6e6c79456a6563746f723a60448201527f2063616c6c6572206973206e6f742074686520656a6563746f7200000000000060648201526084016108c6565b6001600160a01b0383166000908152609f602090815260408083204290556099825280832080548251601f870185900485028101850190935285835290939092909161184b9187908790819084018382808284376000920191909152505060965460ff1691506129699050565b9050600061185883612433565b905060018085015460ff16600281111561187457611874614de5565b14801561188957506001600160c01b03821615155b80156118a757506118a76001600160c01b0383811690831681161490565b15611554576115548787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612aa792505050565b6118f4612655565b6118fe6000612f19565b565b60006119407f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a878787878760405160200161102c96959493929190615988565b9695505050505050565b6000610f1982612433565b60006119696064546001600160a01b031690565b905090565b6001805460009190811614156119965760405162461bcd60e51b81526004016108c690615731565b838914611a195760405162461bcd60e51b8152602060048201526044602482018190527f5265676973747279436f6f7264696e61746f722e72656769737465724f706572908201527f61746f7257697468436875726e3a20696e707574206c656e677468206d69736d6064820152630c2e8c6d60e31b608482015260a4016108c6565b6000611a253388612f6b565b9050611a8533828888808060200260200160405190810160405280939291908181526020016000905b82821015611a7a57611a6b60408302860136819003810190615a0d565b81526020019060010190611a4e565b50505050508761309c565b6000611acc33838e8e8e8e8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250613229915050565b905060005b8b811015611c97576000609760008f8f85818110611af157611af1615768565b919091013560f81c82525060208082019290925260409081016000208151606081018352905463ffffffff811680835261ffff600160201b8304811695840195909552600160301b90910490931691810191909152845180519193509084908110611b5e57611b5e615768565b602002602001015163ffffffff161115611c8457611bff8e8e84818110611b8757611b87615768565b9050013560f81c60f81b60f81c84604001518481518110611baa57611baa615768565b60200260200101513386602001518681518110611bc957611bc9615768565b60200260200101518d8d88818110611be357611be3615768565b905060400201803603810190611bf99190615a0d565b866137ea565b611c84898984818110611c1457611c14615768565b9050604002016020016020810190611c2c9190614cb7565b8f8f8590866001611c3d9190615946565b92611c4a9392919061595e565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612aa792505050565b5080611c8f81615794565b915050611ad1565b50505050505050505050505050565b600180546000919081161415611cce5760405162461bcd60e51b81526004016108c690615731565b6000611cda3385612f6b565b90506000611d2333838b8b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250613229915050565b51905060005b88811015611e1e5760008a8a83818110611d4557611d45615768565b919091013560f81c600081815260976020526040902054855191935063ffffffff169150849084908110611d7b57611d7b615768565b602002602001015163ffffffff161115611e0b5760405162461bcd60e51b8152602060048201526044602482018190527f5265676973747279436f6f7264696e61746f722e72656769737465724f706572908201527f61746f723a206f70657261746f7220636f756e742065786365656473206d6178606482015263696d756d60e01b608482015260a4016108c6565b5080611e1681615794565b915050611d29565b50505050505050505050565b6060600082516001600160401b03811115611e4757611e47614b5b565b604051908082528060200260200182016040528015611e70578160200160208202803683370190505b50905060005b8351811015611edb57611ea285858381518110611e9557611e95615768565b6020026020010151613abf565b828281518110611eb457611eb4615768565b63ffffffff9092166020928302919091019091015280611ed381615794565b915050611e76565b509392505050565b6001805460029081161415611f0a5760405162461bcd60e51b81526004016108c690615731565b61172f3384848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612aa792505050565b611f52612655565b61172f838383613bfb565b600054610100900460ff1615808015611f7d5750600054600160ff909116105b80611f975750303b158015611f97575060005460ff166001145b611ffa5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016108c6565b6000805460ff19166001179055801561201d576000805461ff0019166101001790555b8251845114801561202f575081518351145b6120995760405162461bcd60e51b815260206004820152603560248201527f5265676973747279436f6f7264696e61746f722e696e697469616c697a653a206044820152740d2dce0eae840d8cadccee8d040dad2e6dac2e8c6d605b1b60648201526084016108c6565b6120a289612f19565b6120ac8686613e12565b6120b5886127b9565b6120be87612822565b609c80546001818101835560008381527faf85b9071dfafeac1409d3f1d19bafc9bc7c37974cde8df0ee6168f0086e539c92830180546001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166001600160a01b03199283161790925585548085018755850180547f0000000000000000000000000000000000000000000000000000000000000000841690831617905585549384019095559190920180547f000000000000000000000000000000000000000000000000000000000000000090921691909316179091555b845181101561220f576121fd8582815181106121bc576121bc615768565b60200260200101518583815181106121d6576121d6615768565b60200260200101518584815181106121f0576121f0615768565b6020026020010151613bfb565b8061220781615794565b91505061219e565b508015612256576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b612269612655565b6001600160a01b0381166122ce5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108c6565b610d4e81612f19565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561232a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061234e919061580f565b6001600160a01b0316336001600160a01b03161461237e5760405162461bcd60e51b81526004016108c69061582c565b6001541981196001541916146123fc5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c697479000000000000000060648201526084016108c6565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610c86565b600081815260986020526040812054806124505750600092915050565b6000838152609860205260409020612469600183615a29565b8154811061247957612479615768565b600091825260209091200154600160401b90046001600160c01b03169392505050565b60606000806124aa84613f02565b61ffff166001600160401b038111156124c5576124c5614b5b565b6040519080825280601f01601f1916602001820160405280156124ef576020820181803683370190505b5090506000805b825182108015612507575061010081105b1561255e576001811b93508584161561254e578060f81b83838151811061253057612530615768565b60200101906001600160f81b031916908160001a9053508160010191505b61255781615794565b90506124f6565b5090949350505050565b60018260200151600281111561258057612580614de5565b1461258a57505050565b81516040516333567f7f60e11b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906366acfefe906125df90889086908890600401615a40565b6020604051808303816000875af11580156125fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126229190615a70565b90506001600160c01b0381161561264e5761264e85612649836001600160c01b031661249c565b612aa7565b5050505050565b3361265e611955565b6001600160a01b0316146118fe5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108c6565b6001600160a01b0381166127425760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a4016108c6565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b609d54604080516001600160a01b03928316815291831660208301527f315457d8a8fe60f04af17c16e2f5a5e1db612b31648e58030360759ef8f3528c910160405180910390a1609d80546001600160a01b0319166001600160a01b0392909216919091179055565b609e54604080516001600160a01b03928316815291831660208301527f8f30ab09f43a6c157d7fce7e0a13c003042c1c95e8a72e7a146a21c0caa24dc9910160405180910390a1609e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610f19612898613f2d565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b604080518082019091526000808252602082015260008080612909600080516020615f7083398151915286615aaf565b90505b61291581614054565b9093509150600080516020615f7083398151915282830983141561294f576040805180820190915290815260208101919091529392505050565b600080516020615f7083398151915260018208905061290c565b600080612975846140d6565b9050808360ff166001901b116129f35760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c75650060648201526084016108c6565b9392505050565b60ff8216600081815260976020908152604091829020845181548684018051888701805163ffffffff90951665ffffffffffff199094168417600160201b61ffff938416021767ffff0000000000001916600160301b95831695909502949094179094558551918252518316938101939093525116918101919091527f3ee6fe8d54610244c3e9d3c066ae4aee997884aa28f10616ae821925401318ac9060600160405180910390a25050565b6001600160a01b0382166000908152609960205260409020805460018083015460ff166002811115612adb57612adb614de5565b14612b5a5760405162461bcd60e51b815260206004820152604360248201527f5265676973747279436f6f7264696e61746f722e5f646572656769737465724f60448201527f70657261746f723a206f70657261746f72206973206e6f7420726567697374656064820152621c995960ea1b608482015260a4016108c6565b609654600090612b6e90859060ff16612969565b90506000612b7b83612433565b90506001600160c01b038216612bf95760405162461bcd60e51b815260206004820152603b60248201527f5265676973747279436f6f7264696e61746f722e5f646572656769737465724f60448201527f70657261746f723a206269746d61702063616e6e6f742062652030000000000060648201526084016108c6565b612c106001600160c01b0383811690831681161490565b612ca85760405162461bcd60e51b815260206004820152605960248201527f5265676973747279436f6f7264696e61746f722e5f646572656769737465724f60448201527f70657261746f723a206f70657261746f72206973206e6f74207265676973746560648201527f72656420666f72207370656369666965642071756f72756d7300000000000000608482015260a4016108c6565b6001600160c01b0382811619821616612cc18482614263565b6001600160c01b038116612d905760018501805460ff191660021790556040516351b27a6d60e11b81526001600160a01b0388811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a364f4da90602401600060405180830381600087803b158015612d4157600080fd5b505af1158015612d55573d6000803e3d6000fd5b50506040518692506001600160a01b038a1691507f396fdcb180cb0fea26928113fb0fd1c3549863f9cd563e6a184f1d578116c8e490600090a35b60405163f4e24fe560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f4e24fe590612dde908a908a90600401615ac3565b600060405180830381600087803b158015612df857600080fd5b505af1158015612e0c573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016925063bd29b8cd9150612e5e9087908a90600401615ae7565b600060405180830381600087803b158015612e7857600080fd5b505af1158015612e8c573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016925063bd29b8cd9150612ede9087908a90600401615ae7565b600060405180830381600087803b158015612ef857600080fd5b505af1158015612f0c573d6000803e3d6000fd5b5050505050505050505050565b606480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040516309aa152760e11b81526001600160a01b0383811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906313542a4e90602401602060405180830381865afa158015612fd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ffa9190615b00565b905080610f19577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bf79ce58848461303b87610fcd565b6040518463ffffffff1660e01b815260040161305993929190615b19565b6020604051808303816000875af1158015613078573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129f39190615b00565b6020808201516000908152609a909152604090205460ff16156131425760405162461bcd60e51b815260206004820152605260248201527f5265676973747279436f6f7264696e61746f722e5f766572696679436875726e60448201527f417070726f7665725369676e61747572653a20636875726e417070726f766572606482015271081cd85b1d08185b1c9958591e481d5cd95960721b608482015260a4016108c6565b42816040015110156131d75760405162461bcd60e51b815260206004820152605260248201527f5265676973747279436f6f7264696e61746f722e5f766572696679436875726e60448201527f417070726f7665725369676e61747572653a20636875726e417070726f766572606482015271081cda59db985d1d5c9948195e1c1a5c995960721b608482015260a4016108c6565b602080820180516000908152609a909252604091829020805460ff19166001179055609d549051918301516109ad926001600160a01b03909216916132229188918891889190611900565b8351614423565b61324d60405180606001604052806060815260200160608152602001606081525090565b600061329586868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506129699050565b905060006132a288612433565b90506001600160c01b0382166133205760405162461bcd60e51b815260206004820152603960248201527f5265676973747279436f6f7264696e61746f722e5f72656769737465724f706560448201527f7261746f723a206269746d61702063616e6e6f7420626520300000000000000060648201526084016108c6565b8082166001600160c01b0316156133d65760405162461bcd60e51b815260206004820152606860248201527f5265676973747279436f6f7264696e61746f722e5f72656769737465724f706560448201527f7261746f723a206f70657261746f7220616c726561647920726567697374657260648201527f656420666f7220736f6d652071756f72756d73206265696e672072656769737460848201526732b932b2103337b960c11b60a482015260c4016108c6565b60a0546001600160a01b038a166000908152609f60205260409020546001600160c01b038381169085161791429161340e9190615946565b1061348f5760405162461bcd60e51b815260206004820152604560248201527f5265676973747279436f6f7264696e61746f722e5f72656769737465724f706560448201527f7261746f723a206f70657261746f722063616e6e6f74207265726567697374656064820152641c881e595d60da1b608482015260a4016108c6565b6134998982614263565b887fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa876040516134c991906157fc565b60405180910390a260016001600160a01b038b1660009081526099602052604090206001015460ff16600281111561350357613503614de5565b1461361c576040805180820182528a8152600160208083018281526001600160a01b038f166000908152609990925293902082518155925183820180549394939192909160ff19169083600281111561355e5761355e614de5565b021790555050604051639926ee7d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169150639926ee7d906135b3908d908990600401615b98565b600060405180830381600087803b1580156135cd57600080fd5b505af11580156135e1573d6000803e3d6000fd5b50506040518b92506001600160a01b038d1691507fe8e68cef1c3a761ed7be7e8463a375f27f7bc335e51824223cacce636ec5c3fe90600090a35b604051631fd93ca960e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633fb279529061366c908d908c908c90600401615c0c565b600060405180830381600087803b15801561368657600080fd5b505af115801561369a573d6000803e3d6000fd5b5050604051632550477760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169250632550477791506136f0908d908d908d908d90600401615c31565b6000604051808303816000875af115801561370f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526137379190810190615cbd565b60408087019190915260208601919091525162bff04d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169062bff04d90613794908c908c908c90600401615d20565b6000604051808303816000875af11580156137b3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526137db9190810190615d3a565b84525050509695505050505050565b6020808301516001600160a01b03808216600081815260999094526040909320549192908716141561386a5760405162461bcd60e51b81526020600482015260356024820152600080516020615f5083398151915260448201527439371d1031b0b73737ba1031b43ab9371039b2b63360591b60648201526084016108c6565b8760ff16846000015160ff16146138e75760405162461bcd60e51b81526020600482015260476024820152600080516020615f5083398151915260448201527f726e3a2071756f72756d4e756d626572206e6f74207468652073616d65206173606482015266081cda59db995960ca1b608482015260a4016108c6565b604051635401ed2760e01b81526004810182905260ff891660248201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635401ed2790604401602060405180830381865afa158015613958573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061397c9190615dd3565b905061398881856145dd565b6001600160601b0316866001600160601b031611613a1b5760405162461bcd60e51b81526020600482015260566024820152600080516020615f5083398151915260448201527f726e3a20696e636f6d696e67206f70657261746f722068617320696e7375666660648201527534b1b4b2b73a1039ba30b5b2903337b91031b43ab93760511b608482015260a4016108c6565b613a258885614601565b6001600160601b0316816001600160601b0316106122565760405162461bcd60e51b815260206004820152605c6024820152600080516020615f5083398151915260448201527f726e3a2063616e6e6f74206b69636b206f70657261746f722077697468206d6f60648201527f7265207468616e206b69636b424950734f66546f74616c5374616b6500000000608482015260a4016108c6565b600081815260986020526040812054815b81811015613b51576001613ae48284615a29565b613aee9190615a29565b92508463ffffffff16609860008681526020019081526020016000208463ffffffff1681548110613b2157613b21615768565b60009182526020909120015463ffffffff1611613b3f575050610f19565b80613b4981615794565b915050613ad0565b5060405162461bcd60e51b815260206004820152606c60248201527f5265676973747279436f6f7264696e61746f722e67657451756f72756d42697460448201527f6d6170496e6465784174426c6f636b4e756d6265723a206e6f206269746d617060648201527f2075706461746520666f756e6420666f72206f70657261746f7249642061742060848201526b313637b1b590373ab6b132b960a11b60a482015260c4016108c6565b60965460ff1660c08110613c6f5760405162461bcd60e51b815260206004820152603560248201527f5265676973747279436f6f7264696e61746f722e63726561746551756f72756d6044820152740e881b585e081c5d5bdc9d5b5cc81c995858da1959605a1b60648201526084016108c6565b613c7a816001615df0565b6096805460ff191660ff9290921691909117905580613c9981866129fa565b60405160016296b58960e01b031981526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ff694a7790613cec90849088908890600401615e15565b600060405180830381600087803b158015613d0657600080fd5b505af1158015613d1a573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506326d941f29150602401600060405180830381600087803b158015613d8257600080fd5b505af1158015613d96573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506326d941f29150602401600060405180830381600087803b158015613dfe57600080fd5b505af1158015612256573d6000803e3d6000fd5b6000546201000090046001600160a01b0316158015613e3957506001600160a01b03821615155b613ebb5760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a4016108c6565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2613efe826126b4565b5050565b6000805b8215610f1957613f17600184615a29565b9092169180613f2581615e8e565b915050613f06565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015613f8657507f000000000000000000000000000000000000000000000000000000000000000046145b15613fb057507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b60008080600080516020615f708339815191526003600080516020615f7083398151915286600080516020615f708339815191528889090908905060006140ca827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52600080516020615f7083398151915261461b565b91959194509092505050565b60006101008251111561415f5760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a4016108c6565b815161416d57506000919050565b6000808360008151811061418357614183615768565b0160200151600160f89190911c81901b92505b845181101561425a578481815181106141b1576141b1615768565b0160200151600160f89190911c1b91508282116142465760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a4016108c6565b9181179161425381615794565b9050614196565b50909392505050565b60008281526098602052604090205480614308576000838152609860209081526040808320815160608101835263ffffffff43811682528185018681526001600160c01b03808a16958401958652845460018101865594885295909620915191909201805495519351909416600160401b026001600160401b03938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055505050565b6000838152609860205260408120614321600184615a29565b8154811061433157614331615768565b600091825260209091200180549091504363ffffffff908116911614156143755780546001600160401b0316600160401b6001600160c01b038516021781556109ad565b805463ffffffff438116600160201b81810267ffffffff0000000019909416939093178455600087815260986020908152604080832081516060810183529485528483018481526001600160c01b03808c1693870193845282546001810184559286529390942094519401805493519151909216600160401b026001600160401b0391861690960267ffffffffffffffff199093169390941692909217179190911691909117905550505050565b6001600160a01b0383163b1561453d57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906144639086908690600401615ae7565b602060405180830381865afa158015614480573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144a49190615eb0565b6001600160e01b0319161461172f5760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a4016108c6565b826001600160a01b031661455183836146ca565b6001600160a01b03161461172f5760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a4016108c6565b6020810151600090612710906145f79061ffff1685615eda565b6129f39190615f09565b6040810151600090612710906145f79061ffff1685615eda565b600080614626614a37565b61462e614a55565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa925082801561466f57614671565bfe5b50826146bf5760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c75726500000000000060448201526064016108c6565b505195945050505050565b60008060006146d985856146e6565b91509150611edb81614756565b60008082516041141561471d5760208301516040840151606085015160001a61471187828585614911565b9450945050505061474f565b825160401415614747576020830151604084015161473c8683836149fe565b93509350505061474f565b506000905060025b9250929050565b600081600481111561476a5761476a614de5565b14156147735750565b600181600481111561478757614787614de5565b14156147d55760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016108c6565b60028160048111156147e9576147e9614de5565b14156148375760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016108c6565b600381600481111561484b5761484b614de5565b14156148a45760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016108c6565b60048160048111156148b8576148b8614de5565b1415610d4e5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b60648201526084016108c6565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561494857506000905060036149f5565b8460ff16601b1415801561496057508460ff16601c14155b1561497157506000905060046149f5565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156149c5573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166149ee576000600192509250506149f5565b9150600090505b94509492505050565b6000806001600160ff1b03831681614a1b60ff86901c601b615946565b9050614a2987828885614911565b935093505050935093915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60008083601f840112614a8557600080fd5b5081356001600160401b03811115614a9c57600080fd5b6020830191508360208260051b850101111561474f57600080fd5b60008060208385031215614aca57600080fd5b82356001600160401b03811115614ae057600080fd5b614aec85828601614a73565b90969095509350505050565b600060208284031215614b0a57600080fd5b5035919050565b63ffffffff81168114610d4e57600080fd5b600080600060608486031215614b3857600080fd5b833592506020840135614b4a81614b11565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b0381118282101715614b9357614b93614b5b565b60405290565b604080519081016001600160401b0381118282101715614b9357614b93614b5b565b604051601f8201601f191681016001600160401b0381118282101715614be357614be3614b5b565b604052919050565b60006001600160401b03831115614c0457614c04614b5b565b614c17601f8401601f1916602001614bbb565b9050828152838383011115614c2b57600080fd5b828260208301376000602084830101529392505050565b600060208284031215614c5457600080fd5b81356001600160401b03811115614c6a57600080fd5b8201601f81018413614c7b57600080fd5b614c8a84823560208401614beb565b949350505050565b6001600160a01b0381168114610d4e57600080fd5b8035614cb281614c92565b919050565b600060208284031215614cc957600080fd5b81356129f381614c92565b60008060408385031215614ce757600080fd5b50508035926020909101359150565b803560ff81168114614cb257600080fd5b600060208284031215614d1957600080fd5b6129f382614cf6565b815181526020808301519082015260408101610f19565b60008083601f840112614d4b57600080fd5b5081356001600160401b03811115614d6257600080fd5b60208301915083602082850101111561474f57600080fd5b60008060008060408587031215614d9057600080fd5b84356001600160401b0380821115614da757600080fd5b614db388838901614a73565b90965094506020870135915080821115614dcc57600080fd5b50614dd987828801614d39565b95989497509550505050565b634e487b7160e01b600052602160045260246000fd5b60038110614e1957634e487b7160e01b600052602160045260246000fd5b9052565b815181526020808301516040830191614e3890840182614dfb565b5092915050565b803561ffff81168114614cb257600080fd5b600060608284031215614e6357600080fd5b614e6b614b71565b90508135614e7881614b11565b8152614e8660208301614e3f565b6020820152614e9760408301614e3f565b604082015292915050565b60008060808385031215614eb557600080fd5b614ebe83614cf6565b9150614ecd8460208501614e51565b90509250929050565b600080600060408486031215614eeb57600080fd5b8335614ef681614c92565b925060208401356001600160401b03811115614f1157600080fd5b614f1d86828701614d39565b9497909650939450505050565b60006001600160401b03821115614f4357614f43614b5b565b5060051b60200190565b600060408284031215614f5f57600080fd5b614f67614b99565b9050614f7282614cf6565b81526020820135614f8281614c92565b602082015292915050565b600080600080600060a08688031215614fa557600080fd5b8535614fb081614c92565b945060208681013594506040808801356001600160401b03811115614fd457600080fd5b8801601f81018a13614fe557600080fd5b8035614ff8614ff382614f2a565b614bbb565b81815260069190911b8201840190848101908c83111561501757600080fd5b928501925b8284101561503d5761502e8d85614f4d565b8252928401929085019061501c565b999c989b5098996060810135995060800135979650505050505050565b6000610100828403121561506d57600080fd5b50919050565b60008083601f84011261508557600080fd5b5081356001600160401b0381111561509c57600080fd5b6020830191508360208260061b850101111561474f57600080fd5b6000606082840312156150c957600080fd5b6150d1614b71565b905081356001600160401b038111156150e957600080fd5b8201601f810184136150fa57600080fd5b61510984823560208401614beb565b825250602082013560208201526040820135604082015292915050565b60008060008060008060008060006101a08a8c03121561514557600080fd5b89356001600160401b038082111561515c57600080fd5b6151688d838e01614d39565b909b50995060208c013591508082111561518157600080fd5b61518d8d838e01614d39565b90995097508791506151a28d60408e0161505a565b96506101408c01359150808211156151b957600080fd5b6151c58d838e01615073565b90965094506101608c01359150808211156151df57600080fd5b6151eb8d838e016150b7565b93506101808c013591508082111561520257600080fd5b5061520f8c828d016150b7565b9150509295985092959850929598565b600080600080600080610160878903121561523957600080fd5b86356001600160401b038082111561525057600080fd5b61525c8a838b01614d39565b9098509650602089013591508082111561527557600080fd5b6152818a838b01614d39565b90965094508491506152968a60408b0161505a565b93506101408901359150808211156152ad57600080fd5b506152ba89828a016150b7565b9150509295509295509295565b600080604083850312156152da57600080fd5b82356152e581614b11565b91506020838101356001600160401b0381111561530157600080fd5b8401601f8101861361531257600080fd5b8035615320614ff382614f2a565b81815260059190911b8201830190838101908883111561533f57600080fd5b928401925b8284101561535d57833582529284019290840190615344565b80955050505050509250929050565b6020808252825182820181905260009190848201906040850190845b818110156153aa57835163ffffffff1683529284019291840191600101615388565b50909695505050505050565b600080602083850312156153c957600080fd5b82356001600160401b038111156153df57600080fd5b614aec85828601614d39565b6001600160601b0381168114610d4e57600080fd5b600082601f83011261541157600080fd5b81356020615421614ff383614f2a565b82815260069290921b8401810191818101908684111561544057600080fd5b8286015b84811015615491576040818903121561545d5760008081fd5b615465614b99565b813561547081614c92565b81528185013561547f816153eb565b81860152835291830191604001615444565b509695505050505050565b600080600060a084860312156154b157600080fd5b6154bb8585614e51565b925060608401356154cb816153eb565b915060808401356001600160401b038111156154e657600080fd5b6154f286828701615400565b9150509250925092565b600082601f83011261550d57600080fd5b8135602061551d614ff383614f2a565b8281526060928302850182019282820191908785111561553c57600080fd5b8387015b8581101561555f576155528982614e51565b8452928401928101615540565b5090979650505050505050565b600082601f83011261557d57600080fd5b8135602061558d614ff383614f2a565b82815260059290921b840181019181810190868411156155ac57600080fd5b8286015b848110156154915780356155c3816153eb565b83529183019183016155b0565b600082601f8301126155e157600080fd5b813560206155f1614ff383614f2a565b82815260059290921b8401810191818101908684111561561057600080fd5b8286015b848110156154915780356001600160401b038111156156335760008081fd5b6156418986838b0101615400565b845250918301918301615614565b600080600080600080600080610100898b03121561566c57600080fd5b61567589614ca7565b975061568360208a01614ca7565b965061569160408a01614ca7565b955061569f60608a01614ca7565b94506080890135935060a08901356001600160401b03808211156156c257600080fd5b6156ce8c838d016154fc565b945060c08b01359150808211156156e457600080fd5b6156f08c838d0161556c565b935060e08b013591508082111561570657600080fd5b506157138b828c016155d0565b9150509295985092959890939650565b60208101610f198284614dfb565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156157a8576157a861577e565b5060010190565b6000815180845260005b818110156157d5576020818501810151868301820152016157b9565b818111156157e7576000602083870101525b50601f01601f19169290920160200192915050565b6020815260006129f360208301846157af565b60006020828403121561582157600080fd5b81516129f381614c92565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561588857600080fd5b815180151581146129f357600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000808335601e198436030181126158f757600080fd5b8301803591506001600160401b0382111561591157600080fd5b6020019150600581901b360382131561474f57600080fd5b60006020828403121561593b57600080fd5b81516129f381614b11565b600082198211156159595761595961577e565b500190565b6000808585111561596e57600080fd5b8386111561597b57600080fd5b5050820193919092039150565b600060c08201888352602060018060a01b03808a16828601526040898187015260c0606087015283895180865260e088019150848b01955060005b818110156159ed578651805160ff16845286015185168684015295850195918301916001016159c3565b505060808701989098525050505060a09091019190915250949350505050565b600060408284031215615a1f57600080fd5b6129f38383614f4d565b600082821015615a3b57615a3b61577e565b500390565b60018060a01b0384168152826020820152606060408201526000615a6760608301846157af565b95945050505050565b600060208284031215615a8257600080fd5b81516001600160c01b03811681146129f357600080fd5b634e487b7160e01b600052601260045260246000fd5b600082615abe57615abe615a99565b500690565b6001600160a01b0383168152604060208201819052600090614c8a908301846157af565b828152604060208201526000614c8a60408301846157af565b600060208284031215615b1257600080fd5b5051919050565b6001600160a01b03841681526101608101615b41602083018580358252602090810135910152565b615b5b606083016040860180358252602090810135910152565b60406080850160a084013760e0820160008152604060c0860182375060006101208301908152835190526020909201516101409091015292915050565b60018060a01b0383168152604060208201526000825160606040840152615bc260a08401826157af565b90506020840151606084015260408401516080840152809150509392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b0384168152604060208201819052600090615a679083018486615be3565b60018060a01b0385168152836020820152606060408201526000611940606083018486615be3565b600082601f830112615c6a57600080fd5b81516020615c7a614ff383614f2a565b82815260059290921b84018101918181019086841115615c9957600080fd5b8286015b84811015615491578051615cb0816153eb565b8352918301918301615c9d565b60008060408385031215615cd057600080fd5b82516001600160401b0380821115615ce757600080fd5b615cf386838701615c59565b93506020850151915080821115615d0957600080fd5b50615d1685828601615c59565b9150509250929050565b838152604060208201526000615a67604083018486615be3565b60006020808385031215615d4d57600080fd5b82516001600160401b03811115615d6357600080fd5b8301601f81018513615d7457600080fd5b8051615d82614ff382614f2a565b81815260059190911b82018301908381019087831115615da157600080fd5b928401925b82841015615dc8578351615db981614b11565b82529284019290840190615da6565b979650505050505050565b600060208284031215615de557600080fd5b81516129f3816153eb565b600060ff821660ff84168060ff03821115615e0d57615e0d61577e565b019392505050565b60006060820160ff8616835260206001600160601b03808716828601526040606081870152838751808652608088019150848901955060005b81811015615e7e57865180516001600160a01b031684528601518516868401529585019591830191600101615e4e565b50909a9950505050505050505050565b600061ffff80831681811415615ea657615ea661577e565b6001019392505050565b600060208284031215615ec257600080fd5b81516001600160e01b0319811681146129f357600080fd5b60006001600160601b0380831681851681830481118215151615615f0057615f0061577e565b02949350505050565b60006001600160601b0380841680615f2357615f23615a99565b9216919091049291505056fe5265676973747279436f6f7264696e61746f722e7570646174654f70657261745265676973747279436f6f7264696e61746f722e5f76616c696461746543687530644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47a264697066735822122028b42424cc9f1abd6594b468f0b25fd363eceff8e62f7803867921a4939c970664736f6c634300080c0033", } // ContractRegistryCoordinatorABI is the input ABI used to generate the binding from. @@ -415,6 +415,37 @@ func (_ContractRegistryCoordinator *ContractRegistryCoordinatorCallerSession) Ch return _ContractRegistryCoordinator.Contract.ChurnApprover(&_ContractRegistryCoordinator.CallOpts) } +// EjectionCooldown is a free data retrieval call binding the contract method 0xa96f783e. +// +// Solidity: function ejectionCooldown() view returns(uint256) +func (_ContractRegistryCoordinator *ContractRegistryCoordinatorCaller) EjectionCooldown(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _ContractRegistryCoordinator.contract.Call(opts, &out, "ejectionCooldown") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// EjectionCooldown is a free data retrieval call binding the contract method 0xa96f783e. +// +// Solidity: function ejectionCooldown() view returns(uint256) +func (_ContractRegistryCoordinator *ContractRegistryCoordinatorSession) EjectionCooldown() (*big.Int, error) { + return _ContractRegistryCoordinator.Contract.EjectionCooldown(&_ContractRegistryCoordinator.CallOpts) +} + +// EjectionCooldown is a free data retrieval call binding the contract method 0xa96f783e. +// +// Solidity: function ejectionCooldown() view returns(uint256) +func (_ContractRegistryCoordinator *ContractRegistryCoordinatorCallerSession) EjectionCooldown() (*big.Int, error) { + return _ContractRegistryCoordinator.Contract.EjectionCooldown(&_ContractRegistryCoordinator.CallOpts) +} + // Ejector is a free data retrieval call binding the contract method 0x28f61b31. // // Solidity: function ejector() view returns(address) @@ -818,6 +849,37 @@ func (_ContractRegistryCoordinator *ContractRegistryCoordinatorCallerSession) Is return _ContractRegistryCoordinator.Contract.IsChurnApproverSaltUsed(&_ContractRegistryCoordinator.CallOpts, arg0) } +// LastEjectionTimestamp is a free data retrieval call binding the contract method 0x125e0584. +// +// Solidity: function lastEjectionTimestamp(address ) view returns(uint256) +func (_ContractRegistryCoordinator *ContractRegistryCoordinatorCaller) LastEjectionTimestamp(opts *bind.CallOpts, arg0 common.Address) (*big.Int, error) { + var out []interface{} + err := _ContractRegistryCoordinator.contract.Call(opts, &out, "lastEjectionTimestamp", arg0) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// LastEjectionTimestamp is a free data retrieval call binding the contract method 0x125e0584. +// +// Solidity: function lastEjectionTimestamp(address ) view returns(uint256) +func (_ContractRegistryCoordinator *ContractRegistryCoordinatorSession) LastEjectionTimestamp(arg0 common.Address) (*big.Int, error) { + return _ContractRegistryCoordinator.Contract.LastEjectionTimestamp(&_ContractRegistryCoordinator.CallOpts, arg0) +} + +// LastEjectionTimestamp is a free data retrieval call binding the contract method 0x125e0584. +// +// Solidity: function lastEjectionTimestamp(address ) view returns(uint256) +func (_ContractRegistryCoordinator *ContractRegistryCoordinatorCallerSession) LastEjectionTimestamp(arg0 common.Address) (*big.Int, error) { + return _ContractRegistryCoordinator.Contract.LastEjectionTimestamp(&_ContractRegistryCoordinator.CallOpts, arg0) +} + // NumRegistries is a free data retrieval call binding the contract method 0xd72d8dd6. // // Solidity: function numRegistries() view returns(uint256) @@ -1369,6 +1431,27 @@ func (_ContractRegistryCoordinator *ContractRegistryCoordinatorTransactorSession return _ContractRegistryCoordinator.Contract.SetChurnApprover(&_ContractRegistryCoordinator.TransactOpts, _churnApprover) } +// SetEjectionCooldown is a paid mutator transaction binding the contract method 0x0d3f2134. +// +// Solidity: function setEjectionCooldown(uint256 _ejectionCooldown) returns() +func (_ContractRegistryCoordinator *ContractRegistryCoordinatorTransactor) SetEjectionCooldown(opts *bind.TransactOpts, _ejectionCooldown *big.Int) (*types.Transaction, error) { + return _ContractRegistryCoordinator.contract.Transact(opts, "setEjectionCooldown", _ejectionCooldown) +} + +// SetEjectionCooldown is a paid mutator transaction binding the contract method 0x0d3f2134. +// +// Solidity: function setEjectionCooldown(uint256 _ejectionCooldown) returns() +func (_ContractRegistryCoordinator *ContractRegistryCoordinatorSession) SetEjectionCooldown(_ejectionCooldown *big.Int) (*types.Transaction, error) { + return _ContractRegistryCoordinator.Contract.SetEjectionCooldown(&_ContractRegistryCoordinator.TransactOpts, _ejectionCooldown) +} + +// SetEjectionCooldown is a paid mutator transaction binding the contract method 0x0d3f2134. +// +// Solidity: function setEjectionCooldown(uint256 _ejectionCooldown) returns() +func (_ContractRegistryCoordinator *ContractRegistryCoordinatorTransactorSession) SetEjectionCooldown(_ejectionCooldown *big.Int) (*types.Transaction, error) { + return _ContractRegistryCoordinator.Contract.SetEjectionCooldown(&_ContractRegistryCoordinator.TransactOpts, _ejectionCooldown) +} + // SetEjector is a paid mutator transaction binding the contract method 0x2cdd1e86. // // Solidity: function setEjector(address _ejector) returns() diff --git a/contracts/bindings/StakeRegistry/binding.go b/contracts/bindings/StakeRegistry/binding.go index 68ba715c46..a31e40d0e6 100644 --- a/contracts/bindings/StakeRegistry/binding.go +++ b/contracts/bindings/StakeRegistry/binding.go @@ -45,7 +45,7 @@ type IStakeRegistryStrategyParams struct { // ContractStakeRegistryMetaData contains all meta data concerning the ContractStakeRegistry contract. var ContractStakeRegistryMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_registryCoordinator\",\"type\":\"address\",\"internalType\":\"contractIRegistryCoordinator\"},{\"name\":\"_delegationManager\",\"type\":\"address\",\"internalType\":\"contractIDelegationManager\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"MAX_WEIGHING_FUNCTION_LENGTH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"WEIGHTING_DIVISOR\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"addStrategies\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"_strategyParams\",\"type\":\"tuple[]\",\"internalType\":\"structIStakeRegistry.StrategyParams[]\",\"components\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"multiplier\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"delegation\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIDelegationManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"deregisterOperator\",\"inputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getCurrentStake\",\"inputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint96\",\"internalType\":\"uint96\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getCurrentTotalStake\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint96\",\"internalType\":\"uint96\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getLatestStakeUpdate\",\"inputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIStakeRegistry.StakeUpdate\",\"components\":[{\"name\":\"updateBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"nextUpdateBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"stake\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getStakeAtBlockNumber\",\"inputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"blockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint96\",\"internalType\":\"uint96\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getStakeAtBlockNumberAndIndex\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"blockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"index\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint96\",\"internalType\":\"uint96\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getStakeHistory\",\"inputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structIStakeRegistry.StakeUpdate[]\",\"components\":[{\"name\":\"updateBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"nextUpdateBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"stake\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getStakeHistoryLength\",\"inputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getStakeUpdateAtIndex\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"index\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIStakeRegistry.StakeUpdate\",\"components\":[{\"name\":\"updateBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"nextUpdateBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"stake\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getStakeUpdateIndexAtBlockNumber\",\"inputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"blockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTotalStakeAtBlockNumberFromIndex\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"blockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"index\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint96\",\"internalType\":\"uint96\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTotalStakeHistoryLength\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTotalStakeIndicesAtBlockNumber\",\"inputs\":[{\"name\":\"blockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTotalStakeUpdateAtIndex\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"index\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIStakeRegistry.StakeUpdate\",\"components\":[{\"name\":\"updateBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"nextUpdateBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"stake\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initializeQuorum\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"minimumStake\",\"type\":\"uint96\",\"internalType\":\"uint96\"},{\"name\":\"_strategyParams\",\"type\":\"tuple[]\",\"internalType\":\"structIStakeRegistry.StrategyParams[]\",\"components\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"multiplier\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"minimumStakeForQuorum\",\"inputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint96\",\"internalType\":\"uint96\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"modifyStrategyParams\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"strategyIndices\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"newMultipliers\",\"type\":\"uint96[]\",\"internalType\":\"uint96[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"registerOperator\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint96[]\",\"internalType\":\"uint96[]\"},{\"name\":\"\",\"type\":\"uint96[]\",\"internalType\":\"uint96[]\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"registryCoordinator\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"removeStrategies\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"indicesToRemove\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setMinimumStakeForQuorum\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"minimumStake\",\"type\":\"uint96\",\"internalType\":\"uint96\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"strategiesPerQuorum\",\"inputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"strategyParams\",\"inputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"multiplier\",\"type\":\"uint96\",\"internalType\":\"uint96\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"strategyParamsByIndex\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"index\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIStakeRegistry.StrategyParams\",\"components\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"multiplier\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"strategyParamsLength\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"updateOperatorStake\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"quorumNumbers\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint192\",\"internalType\":\"uint192\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"weightOfOperatorForQuorum\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint96\",\"internalType\":\"uint96\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"MinimumStakeForQuorumUpdated\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"indexed\":true,\"internalType\":\"uint8\"},{\"name\":\"minimumStake\",\"type\":\"uint96\",\"indexed\":false,\"internalType\":\"uint96\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorStakeUpdate\",\"inputs\":[{\"name\":\"operatorId\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"},{\"name\":\"stake\",\"type\":\"uint96\",\"indexed\":false,\"internalType\":\"uint96\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"QuorumCreated\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"indexed\":true,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StrategyAddedToQuorum\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"indexed\":true,\"internalType\":\"uint8\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StrategyMultiplierUpdated\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"indexed\":true,\"internalType\":\"uint8\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"multiplier\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StrategyRemovedFromQuorum\",\"inputs\":[{\"name\":\"quorumNumber\",\"type\":\"uint8\",\"indexed\":true,\"internalType\":\"uint8\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"}],\"anonymous\":false}]", - Bin: "0x60c06040523480156200001157600080fd5b506040516200395838038062003958833981016040819052620000349162000065565b6001600160a01b0391821660a05216608052620000a4565b6001600160a01b03811681146200006257600080fd5b50565b600080604083850312156200007957600080fd5b825162000086816200004c565b602084015190925062000099816200004c565b809150509250929050565b60805160a05161384f620001096000396000818161037a015281816106320152818161096f01528181610ce6015281816111110152818161170301528181611805015281816119290152611ce70152600081816105290152611ea8015261384f6000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c80639f3ccf651161010f578063c8294c56116100a2578063f2be94ae11610071578063f2be94ae1461054b578063f851e1981461055e578063fa28c62714610571578063ff694a771461058457600080fd5b8063c8294c56146104d6578063d5eccc05146104e9578063dd9846b9146104fc578063df5cf7231461052457600080fd5b8063bc9a40c3116100de578063bc9a40c314610474578063bd29b8cd14610487578063c46778a51461049a578063c601527d146104c357600080fd5b80639f3ccf65146103ee578063ac6bfb0314610401578063adc804da14610421578063b6904b781461046157600080fd5b80634bd26e091161018757806366acfefe1161015657806366acfefe1461034a5780636d14a987146103755780637c172347146103b457806381c07502146103ce57600080fd5b80634bd26e09146102e55780635401ed27146103155780635e5a6775146103285780635f1f2d771461033757600080fd5b806320b66298116101c357806320b662981461026c57806325504777146102815780632cd95940146102a25780633ca5a5f5146102c257600080fd5b80630491b41c146101ea57806308732461146102205780631f9b74e014610241575b600080fd5b61020d6101f8366004612c27565b60ff1660009081526001602052604090205490565b6040519081526020015b60405180910390f35b61023361022e366004612c42565b610597565b604051610217929190612c6c565b61025461024f366004612ca6565b6105e0565b6040516001600160601b039091168152602001610217565b61027f61027a366004612d21565b610630565b005b61029461028f366004612de2565b610961565b604051610217929190612e81565b6102b56102b0366004612ea6565b610c2c565b6040516102179190612ed2565b61020d6102d0366004612c27565b60ff1660009081526003602052604090205490565b61020d6102f3366004612ea6565b600091825260026020908152604080842060ff93909316845291905290205490565b610254610323366004612ea6565b610ccb565b61020d670de0b6b3a764000081565b61027f610345366004612fdb565b610ce4565b61035d610358366004612de2565b611104565b6040516001600160c01b039091168152602001610217565b61039c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610217565b6103bc602081565b60405160ff9091168152602001610217565b6103e16103dc366004613097565b61125e565b60405161021791906130e9565b61039c6103fc366004612c42565b611528565b61041461040f366004613127565b611560565b604051610217919061315a565b61043461042f366004612c42565b6115f8565b6040805182516001600160a01b031681526020928301516001600160601b03169281019290925201610217565b61041461046f366004612c42565b611672565b61027f6104823660046131a6565b611701565b61027f6104953660046131d0565b6117fa565b6102546104a8366004612c27565b6000602081905290815260409020546001600160601b031681565b61027f6104d136600461329c565b611927565b6102546104e43660046132e9565b611a1b565b6102546104f7366004612c27565b611a99565b61050f61050a366004613325565b611aec565b60405163ffffffff9091168152602001610217565b61039c7f000000000000000000000000000000000000000000000000000000000000000081565b610254610559366004613361565b611b01565b61041461056c366004612ea6565b611b96565b61025461057f366004613325565b611c7b565b61027f6105923660046133a3565b611cdc565b600360205281600052604060002081815481106105b357600080fd5b6000918252602090912001546001600160a01b0381169250600160a01b90046001600160601b0316905082565b60ff8216600090815260016020526040812054839061061a5760405162461bcd60e51b815260040161061190613400565b60405180910390fd5b60006106268585611e47565b5095945050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561068e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b29190613451565b6001600160a01b0316336001600160a01b0316146106e25760405162461bcd60e51b81526004016106119061346e565b846106fe8160ff16600090815260016020526040902054151590565b61071a5760405162461bcd60e51b815260040161061190613400565b8380610790576040805162461bcd60e51b81526020600482015260248101919091527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a206e6f20737472617465677920696e64696365732070726f76696465646064820152608401610611565b8281146108055760405162461bcd60e51b815260206004820152603960248201527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a20696e707574206c656e677468206d69736d61746368000000000000006064820152608401610611565b60ff87166000908152600360205260408120905b8281101561095657858582818110610833576108336134ea565b90506020020160208101906108489190613500565b8289898481811061085b5761085b6134ea565b9050602002013581548110610872576108726134ea565b9060005260206000200160000160146101000a8154816001600160601b0302191690836001600160601b031602179055508860ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a75838a8a858181106108db576108db6134ea565b90506020020135815481106108f2576108f26134ea565b6000918252602090912001546001600160a01b0316888885818110610919576109196134ea565b905060200201602081019061092e9190613500565b60405161093c929190612c6c565b60405180910390a28061094e81613531565b915050610819565b505050505050505050565b606080336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109ac5760405162461bcd60e51b81526004016106119061354c565b6000836001600160401b038111156109c6576109c6612f4a565b6040519080825280602002602001820160405280156109ef578160200160208202803683370190505b5090506000846001600160401b03811115610a0c57610a0c612f4a565b604051908082528060200260200182016040528015610a35578160200160208202803683370190505b50905060005b85811015610c1e576000878783818110610a5757610a576134ea565b919091013560f81c60008181526001602052604090205490925015159050610adf5760405162461bcd60e51b815260206004820152603560248201527f5374616b6552656769737472792e72656769737465724f70657261746f723a206044820152741c5d5bdc9d5b48191bd95cc81b9bdd08195e1a5cdd605a1b6064820152608401610611565b600080610aec838d611e47565b9150915080610b895760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e72656769737465724f70657261746f723a2060448201527f4f70657261746f7220646f6573206e6f74206d656574206d696e696d756d207360648201527f74616b6520726571756972656d656e7420666f722071756f72756d0000000000608482015260a401610611565b6000610b968c8585612045565b905082878681518110610bab57610bab6134ea565b60200260200101906001600160601b031690816001600160601b031681525050610bd584826122c5565b868681518110610be757610be76134ea565b60200260200101906001600160601b031690816001600160601b031681525050505050508080610c1690613531565b915050610a3b565b509097909650945050505050565b600082815260026020908152604080832060ff851684528252808320805482518185028101850190935280835260609492939192909184015b82821015610cbe576000848152602090819020604080516060810182529185015463ffffffff8082168452600160201b82041683850152600160401b90046001600160601b031690820152825260019092019101610c65565b5050505090505b92915050565b600080610cd88484611b96565b60400151949350505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d669190613451565b6001600160a01b0316336001600160a01b031614610d965760405162461bcd60e51b81526004016106119061346e565b81610db28160ff16600090815260016020526040902054151590565b610dce5760405162461bcd60e51b815260040161061190613400565b815180610e435760405162461bcd60e51b815260206004820152603d60248201527f5374616b6552656769737472792e72656d6f7665537472617465676965733a2060448201527f6e6f20696e646963657320746f2072656d6f76652070726f76696465640000006064820152608401610611565b60ff841660009081526003602090815260408083206004909252822090915b838110156110fb578660ff167f31fa2e2cd280c9375e13ffcf3d81e2378100186e4058f8d3ddb690b82dcd31f784888481518110610ea257610ea26134ea565b602002602001015181548110610eba57610eba6134ea565b600091825260209182902001546040516001600160a01b0390911681520160405180910390a28660ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7584888481518110610f1857610f186134ea565b602002602001015181548110610f3057610f306134ea565b600091825260208083209190910154604080516001600160a01b039092168252918101929092520160405180910390a282548390610f70906001906135be565b81548110610f8057610f806134ea565b9060005260206000200183878381518110610f9d57610f9d6134ea565b602002602001015181548110610fb557610fb56134ea565b600091825260209091208254910180546001600160a01b0319166001600160a01b03909216918217815591546001600160601b03600160a01b9182900416021790558254839080611008576110086135d5565b60008281526020812082016000199081019190915501905581548290611030906001906135be565b81548110611040576110406134ea565b9060005260206000200160009054906101000a90046001600160a01b031682878381518110611071576110716134ea565b602002602001015181548110611089576110896134ea565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550818054806110c7576110c76135d5565b600082815260209020810160001990810180546001600160a01b0319169055019055806110f381613531565b915050610e62565b50505050505050565b6000336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461114e5760405162461bcd60e51b81526004016106119061354c565b6000805b8381101561062657600085858381811061116e5761116e6134ea565b919091013560f81c600081815260016020526040902054909250151590506111fe5760405162461bcd60e51b815260206004820152603860248201527f5374616b6552656769737472792e7570646174654f70657261746f725374616b60448201527f653a2071756f72756d20646f6573206e6f7420657869737400000000000000006064820152608401610611565b60008061120b838b611e47565b915091508061122d5760009150600160ff84161b6001600160c01b0386161794505b600061123a8a8585612045565b905061124684826122c5565b5050505050808061125690613531565b915050611152565b60606000826001600160401b0381111561127a5761127a612f4a565b6040519080825280602002602001820160405280156112a3578160200160208202803683370190505b50905060005b8381101561151d5760008585838181106112c5576112c56134ea565b919091013560f81c600081815260016020526040902054909250151590506113645760405162461bcd60e51b815260206004820152604660248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f65734174426c6f636b4e756d6265723a2071756f72756d20646f6573206e6f7460648201526508195e1a5cdd60d21b608482015260a401610611565b60ff81166000908152600160205260408120805463ffffffff8a16929061138d5761138d6134ea565b60009182526020909120015463ffffffff1611156114395760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f65734174426c6f636b4e756d6265723a2071756f72756d20686173206e6f207360648201527f74616b6520686973746f727920617420626c6f636b4e756d6265720000000000608482015260a401610611565b60ff8116600090815260016020526040812054905b818110156115075760ff8316600090815260016020819052604090912063ffffffff8b169161147d84866135be565b61148791906135be565b81548110611497576114976134ea565b60009182526020909120015463ffffffff16116114f55760016114ba82846135be565b6114c491906135be565b8585815181106114d6576114d66134ea565b602002602001019063ffffffff16908163ffffffff1681525050611507565b806114ff81613531565b91505061144e565b505050808061151590613531565b9150506112a9565b5090505b9392505050565b6004602052816000526040600020818154811061154457600080fd5b6000918252602090912001546001600160a01b03169150829050565b60408051606081018252600080825260208083018290528284018290528582526002815283822060ff881683529052919091208054839081106115a5576115a56134ea565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b031691810191909152949350505050565b604080518082019091526000808252602082015260ff83166000908152600360205260409020805483908110611630576116306134ea565b6000918252602091829020604080518082019091529101546001600160a01b0381168252600160a01b90046001600160601b0316918101919091529392505050565b604080516060810182526000808252602080830182905282840182905260ff8616825260019052919091208054839081106116af576116af6134ea565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b0316918101919091529392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561175f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117839190613451565b6001600160a01b0316336001600160a01b0316146117b35760405162461bcd60e51b81526004016106119061346e565b816117cf8160ff16600090815260016020526040902054151590565b6117eb5760405162461bcd60e51b815260040161061190613400565b6117f5838361243f565b505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146118425760405162461bcd60e51b81526004016106119061354c565b60005b81811015611921576000838383818110611861576118616134ea565b919091013560f81c600081815260016020526040902054909250151590506118f15760405162461bcd60e51b815260206004820152603760248201527f5374616b6552656769737472792e646572656769737465724f70657261746f7260448201527f3a2071756f72756d20646f6573206e6f742065786973740000000000000000006064820152608401610611565b60006118ff86836000612045565b905061190b82826122c5565b505050808061191990613531565b915050611845565b50505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611985573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119a99190613451565b6001600160a01b0316336001600160a01b0316146119d95760405162461bcd60e51b81526004016106119061346e565b816119f58160ff16600090815260016020526040902054151590565b611a115760405162461bcd60e51b815260040161061190613400565b6117f583836124a8565b60ff83166000908152600160205260408120805482919084908110611a4257611a426134ea565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529050610cd881856128eb565b60ff81166000908152600160208190526040822080549091611aba916135be565b81548110611aca57611aca6134ea565b600091825260209091200154600160401b90046001600160601b031692915050565b6000611af9848484612a65565b949350505050565b600082815260026020908152604080832060ff881684529091528120805482919084908110611b3257611b326134ea565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529050611b8981866128eb565b6040015195945050505050565b6040805160608082018352600080835260208084018290528385018290528682526002815284822060ff87168352815284822054855193840186528284529083018290529382015290919081611bef579150610cc59050565b600085815260026020908152604080832060ff881684529091529020611c166001846135be565b81548110611c2657611c266134ea565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529250610cc5915050565b600083815260026020908152604080832060ff861684529091528120611ca2858585612a65565b63ffffffff1681548110611cb857611cb86134ea565b600091825260209091200154600160401b90046001600160601b0316949350505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611d245760405162461bcd60e51b81526004016106119061354c565b60ff831660009081526001602052604090205415611da25760405162461bcd60e51b815260206004820152603560248201527f5374616b6552656769737472792e696e697469616c697a6551756f72756d3a2060448201527471756f72756d20616c72656164792065786973747360581b6064820152608401610611565b611dac83826124a8565b611db6838361243f565b505060ff166000908152600160208181526040808420815160608101835263ffffffff438116825281850187815293820187815283549687018455928752939095209451949093018054915193516001600160601b0316600160401b02600160401b600160a01b0319948416600160201b0267ffffffffffffffff1990931695909316949094171791909116179055565b600080600080611e668660ff1660009081526003602052604090205490565b604080518082019091526000808252602082015290915060ff871660009081526004602081905260408083209051639004134760e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692639004134792611edb928c92016135eb565b600060405180830381865afa158015611ef8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611f20919081019061364a565b905060005b838110156120115760ff89166000908152600360205260409020805482908110611f5157611f516134ea565b60009182526020808320604080518082019091529201546001600160a01b0381168352600160a01b90046001600160601b0316908201528351909450839083908110611f9f57611f9f6134ea565b60200260200101511115611fff57670de0b6b3a764000083602001516001600160601b0316838381518110611fd657611fd66134ea565b6020026020010151611fe891906136da565b611ff291906136f9565b611ffc908661371b565b94505b8061200981613531565b915050611f25565b50505060ff8616600090815260208190526040902054919350506001600160601b03908116908316101590505b9250929050565b600083815260026020908152604080832060ff8616845290915281205481908061210957600086815260026020908152604080832060ff891684528252808320815160608101835263ffffffff43811682528185018681526001600160601b03808c16958401958652845460018101865594885295909620915191909201805495519351909416600160401b02600160401b600160a01b0319938316600160201b0267ffffffffffffffff199096169190921617939093171691909117905561226b565b600086815260026020908152604080832060ff8916845290915281206121306001846135be565b81548110612140576121406134ea565b600091825260209091200180546001600160601b03600160401b9091048116945090915085168314156121795760009350505050611521565b80544363ffffffff908116911614156121b3578054600160401b600160a01b031916600160401b6001600160601b03871602178155612269565b805467ffffffff000000001916600160201b4363ffffffff90811682810293909317845560008a815260026020908152604080832060ff8d168452825280832081516060810183529687528683018481526001600160601b038d81169389019384528254600181018455928652939094209651960180549351915196851667ffffffffffffffff1990941693909317931690930291909117600160401b600160a01b031916600160401b93909216929092021790555b505b6040805160ff871681526001600160601b038616602082015287917f2f527d527e95d8fe40aec55377743bb779087da3f6d0d08f12e36444da62327d910160405180910390a26122bb8285612bcb565b9695505050505050565b60ff8216600090815260016020819052604082208054918391906122e990846135be565b815481106122f9576122f96134ea565b90600052602060002001905083600014156123285754600160401b90046001600160601b03169150610cc59050565b805460009061234790600160401b90046001600160601b031686612be3565b82549091504363ffffffff90811691161415612384578154600160401b600160a01b031916600160401b6001600160601b03831602178255612436565b815463ffffffff438116600160201b81810267ffffffff000000001990941693909317855560ff8916600090815260016020818152604080842081516060810183529586528583018581526001600160601b03808b169388019384528254958601835591865292909420945194909201805491519251909316600160401b02600160401b600160a01b031992861690960267ffffffffffffffff19909116939094169290921792909217169190911790555b95945050505050565b60ff82166000818152602081815260409182902080546bffffffffffffffffffffffff19166001600160601b03861690811790915591519182527f26eecff2b70b0a71104ff4d940ba7162d23a95c248771fc487a7be17a596b3cf910160405180910390a25050565b600081511161250d5760405162461bcd60e51b815260206004820152603860248201526000805160206137fa83398151915260448201527f3a206e6f20737472617465676965732070726f766964656400000000000000006064820152608401610611565b805160ff8316600090815260036020908152604090912054906125308383613746565b11156125a05760405162461bcd60e51b815260206004820152604560248201526000805160206137fa83398151915260448201527f3a20657863656564204d41585f5745494748494e475f46554e4354494f4e5f4c60648201526408a9c8ea8960db1b608482015260a401610611565b60005b828110156128e45760005b6125b88284613746565b811015612699578482815181106125d1576125d16134ea565b6020026020010151600001516001600160a01b0316600360008860ff1660ff1681526020019081526020016000208281548110612610576126106134ea565b6000918252602090912001546001600160a01b031614156126875760405162461bcd60e51b815260206004820152603d60248201526000805160206137fa83398151915260448201527f3a2063616e6e6f74206164642073616d652073747261746567792032780000006064820152608401610611565b8061269181613531565b9150506125ae565b5060008482815181106126ae576126ae6134ea565b6020026020010151602001516001600160601b0316116127335760405162461bcd60e51b815260206004820152604660248201526000805160206137fa83398151915260448201527f3a2063616e6e6f74206164642073747261746567792077697468207a65726f206064820152651dd95a59da1d60d21b608482015260a401610611565b60ff851660009081526003602052604090208451859083908110612759576127596134ea565b602090810291909101810151825460018101845560009384528284208251928401516001600160601b0316600160a01b026001600160a01b039093169290921791015560ff87168252600490526040902084518590839081106127be576127be6134ea565b6020908102919091018101515182546001810184556000938452919092200180546001600160a01b0319166001600160a01b03909216919091179055835160ff8616907f10565e56cacbf32eca267945f054fec02e59750032d113d3302182ad967f540490869084908110612835576128356134ea565b602090810291909101810151516040516001600160a01b0390911681520160405180910390a28460ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a75858381518110612892576128926134ea565b6020026020010151600001518684815181106128b0576128b06134ea565b6020026020010151602001516040516128ca929190612c6c565b60405180910390a2806128dc81613531565b9150506125a3565b5050505050565b816000015163ffffffff168163ffffffff1610156129905760405162461bcd60e51b815260206004820152605660248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a207374616b6555706461746520697320606482015275333937b69030b33a32b910313637b1b5a73ab6b132b960511b608482015260a401610611565b602082015163ffffffff1615806129b65750816020015163ffffffff168163ffffffff16105b612a615760405162461bcd60e51b815260206004820152606a60248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a2074686572652069732061206e65776560648201527f72207374616b6555706461746520617661696c61626c65206265666f726520626084820152693637b1b5a73ab6b132b960b11b60a482015260c401610611565b5050565b600083815260026020908152604080832060ff86168452909152812054805b8015612b0657600086815260026020908152604080832060ff89168452909152902063ffffffff851690612ab96001846135be565b81548110612ac957612ac96134ea565b60009182526020909120015463ffffffff1611612af457612aeb6001826135be565b92505050611521565b80612afe8161375e565b915050612a84565b5060405162461bcd60e51b815260206004820152608160248201527f5374616b6552656769737472792e5f6765745374616b65557064617465496e6460448201527f6578466f724f70657261746f724174426c6f636b4e756d6265723a206e6f207360648201527f74616b652075706461746520666f756e6420666f72206f70657261746f72496460848201527f20616e642071756f72756d4e756d62657220617420626c6f636b206e756d626560a4820152603960f91b60c482015260e401610611565b60006115216001600160601b03808516908416613775565b600080821215612c0757612bf6826137b4565b612c0090846137d1565b9050610cc5565b612c00828461371b565b803560ff81168114612c2257600080fd5b919050565b600060208284031215612c3957600080fd5b61152182612c11565b60008060408385031215612c5557600080fd5b612c5e83612c11565b946020939093013593505050565b6001600160a01b039290921682526001600160601b0316602082015260400190565b6001600160a01b0381168114612ca357600080fd5b50565b60008060408385031215612cb957600080fd5b612cc283612c11565b91506020830135612cd281612c8e565b809150509250929050565b60008083601f840112612cef57600080fd5b5081356001600160401b03811115612d0657600080fd5b6020830191508360208260051b850101111561203e57600080fd5b600080600080600060608688031215612d3957600080fd5b612d4286612c11565b945060208601356001600160401b0380821115612d5e57600080fd5b612d6a89838a01612cdd565b90965094506040880135915080821115612d8357600080fd5b50612d9088828901612cdd565b969995985093965092949392505050565b60008083601f840112612db357600080fd5b5081356001600160401b03811115612dca57600080fd5b60208301915083602082850101111561203e57600080fd5b60008060008060608587031215612df857600080fd5b8435612e0381612c8e565b93506020850135925060408501356001600160401b03811115612e2557600080fd5b612e3187828801612da1565b95989497509550505050565b600081518084526020808501945080840160005b83811015612e765781516001600160601b031687529582019590820190600101612e51565b509495945050505050565b604081526000612e946040830185612e3d565b82810360208401526124368185612e3d565b60008060408385031215612eb957600080fd5b82359150612ec960208401612c11565b90509250929050565b6020808252825182820181905260009190848201906040850190845b81811015612f3e57612f2b83855163ffffffff808251168352806020830151166020840152506001600160601b0360408201511660408301525050565b9284019260609290920191600101612eee565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715612f8257612f82612f4a565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612fb057612fb0612f4a565b604052919050565b60006001600160401b03821115612fd157612fd1612f4a565b5060051b60200190565b60008060408385031215612fee57600080fd5b612ff783612c11565b91506020808401356001600160401b0381111561301357600080fd5b8401601f8101861361302457600080fd5b803561303761303282612fb8565b612f88565b81815260059190911b8201830190838101908883111561305657600080fd5b928401925b828410156130745783358252928401929084019061305b565b80955050505050509250929050565b803563ffffffff81168114612c2257600080fd5b6000806000604084860312156130ac57600080fd5b6130b584613083565b925060208401356001600160401b038111156130d057600080fd5b6130dc86828701612da1565b9497909650939450505050565b6020808252825182820181905260009190848201906040850190845b81811015612f3e57835163ffffffff1683529284019291840191600101613105565b60008060006060848603121561313c57600080fd5b61314584612c11565b95602085013595506040909401359392505050565b815163ffffffff9081168252602080840151909116908201526040808301516001600160601b03169082015260608101610cc5565b80356001600160601b0381168114612c2257600080fd5b600080604083850312156131b957600080fd5b6131c283612c11565b9150612ec96020840161318f565b6000806000604084860312156131e557600080fd5b8335925060208401356001600160401b038111156130d057600080fd5b600082601f83011261321357600080fd5b8135602061322361303283612fb8565b82815260069290921b8401810191818101908684111561324257600080fd5b8286015b84811015613291576040818903121561325f5760008081fd5b613267612f60565b813561327281612c8e565b815261327f82860161318f565b81860152835291830191604001613246565b509695505050505050565b600080604083850312156132af57600080fd5b6132b883612c11565b915060208301356001600160401b038111156132d357600080fd5b6132df85828601613202565b9150509250929050565b6000806000606084860312156132fe57600080fd5b61330784612c11565b925061331560208501613083565b9150604084013590509250925092565b60008060006060848603121561333a57600080fd5b8335925061334a60208501612c11565b915061335860408501613083565b90509250925092565b6000806000806080858703121561337757600080fd5b61338085612c11565b935061338e60208601613083565b93969395505050506040820135916060013590565b6000806000606084860312156133b857600080fd5b6133c184612c11565b92506133cf6020850161318f565b915060408401356001600160401b038111156133ea57600080fd5b6133f686828701613202565b9150509250925092565b60208082526031908201527f5374616b6552656769737472792e71756f72756d4578697374733a2071756f726040820152701d5b48191bd95cc81b9bdd08195e1a5cdd607a1b606082015260800190565b60006020828403121561346357600080fd5b815161152181612c8e565b60208082526056908201527f5374616b6552656769737472792e6f6e6c79436f6f7264696e61746f724f776e60408201527f65723a2063616c6c6572206973206e6f7420746865206f776e6572206f6620746060820152753432903932b3b4b9ba393ca1b7b7b93234b730ba37b960511b608082015260a00190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561351257600080fd5b6115218261318f565b634e487b7160e01b600052601160045260246000fd5b60006000198214156135455761354561351b565b5060010190565b6020808252604c908201527f5374616b6552656769737472792e6f6e6c795265676973747279436f6f72646960408201527f6e61746f723a2063616c6c6572206973206e6f7420746865205265676973747260608201526b3ca1b7b7b93234b730ba37b960a11b608082015260a00190565b6000828210156135d0576135d061351b565b500390565b634e487b7160e01b600052603160045260246000fd5b60006040820160018060a01b03808616845260206040818601528286548085526060870191508760005282600020945060005b8181101561363c57855485168352600195860195928401920161361e565b509098975050505050505050565b6000602080838503121561365d57600080fd5b82516001600160401b0381111561367357600080fd5b8301601f8101851361368457600080fd5b805161369261303282612fb8565b81815260059190911b820183019083810190878311156136b157600080fd5b928401925b828410156136cf578351825292840192908401906136b6565b979650505050505050565b60008160001904831182151516156136f4576136f461351b565b500290565b60008261371657634e487b7160e01b600052601260045260246000fd5b500490565b60006001600160601b0380831681851680830382111561373d5761373d61351b565b01949350505050565b600082198211156137595761375961351b565b500190565b60008161376d5761376d61351b565b506000190190565b60008083128015600160ff1b8501841216156137935761379361351b565b6001600160ff1b03840183138116156137ae576137ae61351b565b50500390565b6000600160ff1b8214156137ca576137ca61351b565b5060000390565b60006001600160601b03838116908316818110156137f1576137f161351b565b03939250505056fe5374616b6552656769737472792e5f6164645374726174656779506172616d73a26469706673582212206fa29c568e7fa6c453be2059d0a0f016f68d2462e7e8a0354323405c5d3ae11264736f6c634300080c0033", + Bin: "0x60c06040523480156200001157600080fd5b506040516200395838038062003958833981016040819052620000349162000065565b6001600160a01b0391821660a05216608052620000a4565b6001600160a01b03811681146200006257600080fd5b50565b600080604083850312156200007957600080fd5b825162000086816200004c565b602084015190925062000099816200004c565b809150509250929050565b60805160a05161384f620001096000396000818161037a015281816106320152818161096f01528181610ce6015281816111110152818161170301528181611805015281816119290152611ce70152600081816105290152611ea8015261384f6000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c80639f3ccf651161010f578063c8294c56116100a2578063f2be94ae11610071578063f2be94ae1461054b578063f851e1981461055e578063fa28c62714610571578063ff694a771461058457600080fd5b8063c8294c56146104d6578063d5eccc05146104e9578063dd9846b9146104fc578063df5cf7231461052457600080fd5b8063bc9a40c3116100de578063bc9a40c314610474578063bd29b8cd14610487578063c46778a51461049a578063c601527d146104c357600080fd5b80639f3ccf65146103ee578063ac6bfb0314610401578063adc804da14610421578063b6904b781461046157600080fd5b80634bd26e091161018757806366acfefe1161015657806366acfefe1461034a5780636d14a987146103755780637c172347146103b457806381c07502146103ce57600080fd5b80634bd26e09146102e55780635401ed27146103155780635e5a6775146103285780635f1f2d771461033757600080fd5b806320b66298116101c357806320b662981461026c57806325504777146102815780632cd95940146102a25780633ca5a5f5146102c257600080fd5b80630491b41c146101ea57806308732461146102205780631f9b74e014610241575b600080fd5b61020d6101f8366004612c27565b60ff1660009081526001602052604090205490565b6040519081526020015b60405180910390f35b61023361022e366004612c42565b610597565b604051610217929190612c6c565b61025461024f366004612ca6565b6105e0565b6040516001600160601b039091168152602001610217565b61027f61027a366004612d21565b610630565b005b61029461028f366004612de2565b610961565b604051610217929190612e81565b6102b56102b0366004612ea6565b610c2c565b6040516102179190612ed2565b61020d6102d0366004612c27565b60ff1660009081526003602052604090205490565b61020d6102f3366004612ea6565b600091825260026020908152604080842060ff93909316845291905290205490565b610254610323366004612ea6565b610ccb565b61020d670de0b6b3a764000081565b61027f610345366004612fdb565b610ce4565b61035d610358366004612de2565b611104565b6040516001600160c01b039091168152602001610217565b61039c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610217565b6103bc602081565b60405160ff9091168152602001610217565b6103e16103dc366004613097565b61125e565b60405161021791906130e9565b61039c6103fc366004612c42565b611528565b61041461040f366004613127565b611560565b604051610217919061315a565b61043461042f366004612c42565b6115f8565b6040805182516001600160a01b031681526020928301516001600160601b03169281019290925201610217565b61041461046f366004612c42565b611672565b61027f6104823660046131a6565b611701565b61027f6104953660046131d0565b6117fa565b6102546104a8366004612c27565b6000602081905290815260409020546001600160601b031681565b61027f6104d136600461329c565b611927565b6102546104e43660046132e9565b611a1b565b6102546104f7366004612c27565b611a99565b61050f61050a366004613325565b611aec565b60405163ffffffff9091168152602001610217565b61039c7f000000000000000000000000000000000000000000000000000000000000000081565b610254610559366004613361565b611b01565b61041461056c366004612ea6565b611b96565b61025461057f366004613325565b611c7b565b61027f6105923660046133a3565b611cdc565b600360205281600052604060002081815481106105b357600080fd5b6000918252602090912001546001600160a01b0381169250600160a01b90046001600160601b0316905082565b60ff8216600090815260016020526040812054839061061a5760405162461bcd60e51b815260040161061190613400565b60405180910390fd5b60006106268585611e47565b5095945050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561068e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b29190613451565b6001600160a01b0316336001600160a01b0316146106e25760405162461bcd60e51b81526004016106119061346e565b846106fe8160ff16600090815260016020526040902054151590565b61071a5760405162461bcd60e51b815260040161061190613400565b8380610790576040805162461bcd60e51b81526020600482015260248101919091527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a206e6f20737472617465677920696e64696365732070726f76696465646064820152608401610611565b8281146108055760405162461bcd60e51b815260206004820152603960248201527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a20696e707574206c656e677468206d69736d61746368000000000000006064820152608401610611565b60ff87166000908152600360205260408120905b8281101561095657858582818110610833576108336134ea565b90506020020160208101906108489190613500565b8289898481811061085b5761085b6134ea565b9050602002013581548110610872576108726134ea565b9060005260206000200160000160146101000a8154816001600160601b0302191690836001600160601b031602179055508860ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a75838a8a858181106108db576108db6134ea565b90506020020135815481106108f2576108f26134ea565b6000918252602090912001546001600160a01b0316888885818110610919576109196134ea565b905060200201602081019061092e9190613500565b60405161093c929190612c6c565b60405180910390a28061094e81613531565b915050610819565b505050505050505050565b606080336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109ac5760405162461bcd60e51b81526004016106119061354c565b6000836001600160401b038111156109c6576109c6612f4a565b6040519080825280602002602001820160405280156109ef578160200160208202803683370190505b5090506000846001600160401b03811115610a0c57610a0c612f4a565b604051908082528060200260200182016040528015610a35578160200160208202803683370190505b50905060005b85811015610c1e576000878783818110610a5757610a576134ea565b919091013560f81c60008181526001602052604090205490925015159050610adf5760405162461bcd60e51b815260206004820152603560248201527f5374616b6552656769737472792e72656769737465724f70657261746f723a206044820152741c5d5bdc9d5b48191bd95cc81b9bdd08195e1a5cdd605a1b6064820152608401610611565b600080610aec838d611e47565b9150915080610b895760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e72656769737465724f70657261746f723a2060448201527f4f70657261746f7220646f6573206e6f74206d656574206d696e696d756d207360648201527f74616b6520726571756972656d656e7420666f722071756f72756d0000000000608482015260a401610611565b6000610b968c8585612045565b905082878681518110610bab57610bab6134ea565b60200260200101906001600160601b031690816001600160601b031681525050610bd584826122c5565b868681518110610be757610be76134ea565b60200260200101906001600160601b031690816001600160601b031681525050505050508080610c1690613531565b915050610a3b565b509097909650945050505050565b600082815260026020908152604080832060ff851684528252808320805482518185028101850190935280835260609492939192909184015b82821015610cbe576000848152602090819020604080516060810182529185015463ffffffff8082168452600160201b82041683850152600160401b90046001600160601b031690820152825260019092019101610c65565b5050505090505b92915050565b600080610cd88484611b96565b60400151949350505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d669190613451565b6001600160a01b0316336001600160a01b031614610d965760405162461bcd60e51b81526004016106119061346e565b81610db28160ff16600090815260016020526040902054151590565b610dce5760405162461bcd60e51b815260040161061190613400565b815180610e435760405162461bcd60e51b815260206004820152603d60248201527f5374616b6552656769737472792e72656d6f7665537472617465676965733a2060448201527f6e6f20696e646963657320746f2072656d6f76652070726f76696465640000006064820152608401610611565b60ff841660009081526003602090815260408083206004909252822090915b838110156110fb578660ff167f31fa2e2cd280c9375e13ffcf3d81e2378100186e4058f8d3ddb690b82dcd31f784888481518110610ea257610ea26134ea565b602002602001015181548110610eba57610eba6134ea565b600091825260209182902001546040516001600160a01b0390911681520160405180910390a28660ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7584888481518110610f1857610f186134ea565b602002602001015181548110610f3057610f306134ea565b600091825260208083209190910154604080516001600160a01b039092168252918101929092520160405180910390a282548390610f70906001906135be565b81548110610f8057610f806134ea565b9060005260206000200183878381518110610f9d57610f9d6134ea565b602002602001015181548110610fb557610fb56134ea565b600091825260209091208254910180546001600160a01b0319166001600160a01b03909216918217815591546001600160601b03600160a01b9182900416021790558254839080611008576110086135d5565b60008281526020812082016000199081019190915501905581548290611030906001906135be565b81548110611040576110406134ea565b9060005260206000200160009054906101000a90046001600160a01b031682878381518110611071576110716134ea565b602002602001015181548110611089576110896134ea565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550818054806110c7576110c76135d5565b600082815260209020810160001990810180546001600160a01b0319169055019055806110f381613531565b915050610e62565b50505050505050565b6000336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461114e5760405162461bcd60e51b81526004016106119061354c565b6000805b8381101561062657600085858381811061116e5761116e6134ea565b919091013560f81c600081815260016020526040902054909250151590506111fe5760405162461bcd60e51b815260206004820152603860248201527f5374616b6552656769737472792e7570646174654f70657261746f725374616b60448201527f653a2071756f72756d20646f6573206e6f7420657869737400000000000000006064820152608401610611565b60008061120b838b611e47565b915091508061122d5760009150600160ff84161b6001600160c01b0386161794505b600061123a8a8585612045565b905061124684826122c5565b5050505050808061125690613531565b915050611152565b60606000826001600160401b0381111561127a5761127a612f4a565b6040519080825280602002602001820160405280156112a3578160200160208202803683370190505b50905060005b8381101561151d5760008585838181106112c5576112c56134ea565b919091013560f81c600081815260016020526040902054909250151590506113645760405162461bcd60e51b815260206004820152604660248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f65734174426c6f636b4e756d6265723a2071756f72756d20646f6573206e6f7460648201526508195e1a5cdd60d21b608482015260a401610611565b60ff81166000908152600160205260408120805463ffffffff8a16929061138d5761138d6134ea565b60009182526020909120015463ffffffff1611156114395760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f65734174426c6f636b4e756d6265723a2071756f72756d20686173206e6f207360648201527f74616b6520686973746f727920617420626c6f636b4e756d6265720000000000608482015260a401610611565b60ff8116600090815260016020526040812054905b818110156115075760ff8316600090815260016020819052604090912063ffffffff8b169161147d84866135be565b61148791906135be565b81548110611497576114976134ea565b60009182526020909120015463ffffffff16116114f55760016114ba82846135be565b6114c491906135be565b8585815181106114d6576114d66134ea565b602002602001019063ffffffff16908163ffffffff1681525050611507565b806114ff81613531565b91505061144e565b505050808061151590613531565b9150506112a9565b5090505b9392505050565b6004602052816000526040600020818154811061154457600080fd5b6000918252602090912001546001600160a01b03169150829050565b60408051606081018252600080825260208083018290528284018290528582526002815283822060ff881683529052919091208054839081106115a5576115a56134ea565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b031691810191909152949350505050565b604080518082019091526000808252602082015260ff83166000908152600360205260409020805483908110611630576116306134ea565b6000918252602091829020604080518082019091529101546001600160a01b0381168252600160a01b90046001600160601b0316918101919091529392505050565b604080516060810182526000808252602080830182905282840182905260ff8616825260019052919091208054839081106116af576116af6134ea565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b0316918101919091529392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561175f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117839190613451565b6001600160a01b0316336001600160a01b0316146117b35760405162461bcd60e51b81526004016106119061346e565b816117cf8160ff16600090815260016020526040902054151590565b6117eb5760405162461bcd60e51b815260040161061190613400565b6117f5838361243f565b505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146118425760405162461bcd60e51b81526004016106119061354c565b60005b81811015611921576000838383818110611861576118616134ea565b919091013560f81c600081815260016020526040902054909250151590506118f15760405162461bcd60e51b815260206004820152603760248201527f5374616b6552656769737472792e646572656769737465724f70657261746f7260448201527f3a2071756f72756d20646f6573206e6f742065786973740000000000000000006064820152608401610611565b60006118ff86836000612045565b905061190b82826122c5565b505050808061191990613531565b915050611845565b50505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611985573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119a99190613451565b6001600160a01b0316336001600160a01b0316146119d95760405162461bcd60e51b81526004016106119061346e565b816119f58160ff16600090815260016020526040902054151590565b611a115760405162461bcd60e51b815260040161061190613400565b6117f583836124a8565b60ff83166000908152600160205260408120805482919084908110611a4257611a426134ea565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529050610cd881856128eb565b60ff81166000908152600160208190526040822080549091611aba916135be565b81548110611aca57611aca6134ea565b600091825260209091200154600160401b90046001600160601b031692915050565b6000611af9848484612a65565b949350505050565b600082815260026020908152604080832060ff881684529091528120805482919084908110611b3257611b326134ea565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529050611b8981866128eb565b6040015195945050505050565b6040805160608082018352600080835260208084018290528385018290528682526002815284822060ff87168352815284822054855193840186528284529083018290529382015290919081611bef579150610cc59050565b600085815260026020908152604080832060ff881684529091529020611c166001846135be565b81548110611c2657611c266134ea565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529250610cc5915050565b600083815260026020908152604080832060ff861684529091528120611ca2858585612a65565b63ffffffff1681548110611cb857611cb86134ea565b600091825260209091200154600160401b90046001600160601b0316949350505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611d245760405162461bcd60e51b81526004016106119061354c565b60ff831660009081526001602052604090205415611da25760405162461bcd60e51b815260206004820152603560248201527f5374616b6552656769737472792e696e697469616c697a6551756f72756d3a2060448201527471756f72756d20616c72656164792065786973747360581b6064820152608401610611565b611dac83826124a8565b611db6838361243f565b505060ff166000908152600160208181526040808420815160608101835263ffffffff438116825281850187815293820187815283549687018455928752939095209451949093018054915193516001600160601b0316600160401b02600160401b600160a01b0319948416600160201b0267ffffffffffffffff1990931695909316949094171791909116179055565b600080600080611e668660ff1660009081526003602052604090205490565b604080518082019091526000808252602082015290915060ff871660009081526004602081905260408083209051639004134760e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692639004134792611edb928c92016135eb565b600060405180830381865afa158015611ef8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611f20919081019061364a565b905060005b838110156120115760ff89166000908152600360205260409020805482908110611f5157611f516134ea565b60009182526020808320604080518082019091529201546001600160a01b0381168352600160a01b90046001600160601b0316908201528351909450839083908110611f9f57611f9f6134ea565b60200260200101511115611fff57670de0b6b3a764000083602001516001600160601b0316838381518110611fd657611fd66134ea565b6020026020010151611fe891906136da565b611ff291906136f9565b611ffc908661371b565b94505b8061200981613531565b915050611f25565b50505060ff8616600090815260208190526040902054919350506001600160601b03908116908316101590505b9250929050565b600083815260026020908152604080832060ff8616845290915281205481908061210957600086815260026020908152604080832060ff891684528252808320815160608101835263ffffffff43811682528185018681526001600160601b03808c16958401958652845460018101865594885295909620915191909201805495519351909416600160401b02600160401b600160a01b0319938316600160201b0267ffffffffffffffff199096169190921617939093171691909117905561226b565b600086815260026020908152604080832060ff8916845290915281206121306001846135be565b81548110612140576121406134ea565b600091825260209091200180546001600160601b03600160401b9091048116945090915085168314156121795760009350505050611521565b80544363ffffffff908116911614156121b3578054600160401b600160a01b031916600160401b6001600160601b03871602178155612269565b805467ffffffff000000001916600160201b4363ffffffff90811682810293909317845560008a815260026020908152604080832060ff8d168452825280832081516060810183529687528683018481526001600160601b038d81169389019384528254600181018455928652939094209651960180549351915196851667ffffffffffffffff1990941693909317931690930291909117600160401b600160a01b031916600160401b93909216929092021790555b505b6040805160ff871681526001600160601b038616602082015287917f2f527d527e95d8fe40aec55377743bb779087da3f6d0d08f12e36444da62327d910160405180910390a26122bb8285612bcb565b9695505050505050565b60ff8216600090815260016020819052604082208054918391906122e990846135be565b815481106122f9576122f96134ea565b90600052602060002001905083600014156123285754600160401b90046001600160601b03169150610cc59050565b805460009061234790600160401b90046001600160601b031686612be3565b82549091504363ffffffff90811691161415612384578154600160401b600160a01b031916600160401b6001600160601b03831602178255612436565b815463ffffffff438116600160201b81810267ffffffff000000001990941693909317855560ff8916600090815260016020818152604080842081516060810183529586528583018581526001600160601b03808b169388019384528254958601835591865292909420945194909201805491519251909316600160401b02600160401b600160a01b031992861690960267ffffffffffffffff19909116939094169290921792909217169190911790555b95945050505050565b60ff82166000818152602081815260409182902080546bffffffffffffffffffffffff19166001600160601b03861690811790915591519182527f26eecff2b70b0a71104ff4d940ba7162d23a95c248771fc487a7be17a596b3cf910160405180910390a25050565b600081511161250d5760405162461bcd60e51b815260206004820152603860248201526000805160206137fa83398151915260448201527f3a206e6f20737472617465676965732070726f766964656400000000000000006064820152608401610611565b805160ff8316600090815260036020908152604090912054906125308383613746565b11156125a05760405162461bcd60e51b815260206004820152604560248201526000805160206137fa83398151915260448201527f3a20657863656564204d41585f5745494748494e475f46554e4354494f4e5f4c60648201526408a9c8ea8960db1b608482015260a401610611565b60005b828110156128e45760005b6125b88284613746565b811015612699578482815181106125d1576125d16134ea565b6020026020010151600001516001600160a01b0316600360008860ff1660ff1681526020019081526020016000208281548110612610576126106134ea565b6000918252602090912001546001600160a01b031614156126875760405162461bcd60e51b815260206004820152603d60248201526000805160206137fa83398151915260448201527f3a2063616e6e6f74206164642073616d652073747261746567792032780000006064820152608401610611565b8061269181613531565b9150506125ae565b5060008482815181106126ae576126ae6134ea565b6020026020010151602001516001600160601b0316116127335760405162461bcd60e51b815260206004820152604660248201526000805160206137fa83398151915260448201527f3a2063616e6e6f74206164642073747261746567792077697468207a65726f206064820152651dd95a59da1d60d21b608482015260a401610611565b60ff851660009081526003602052604090208451859083908110612759576127596134ea565b602090810291909101810151825460018101845560009384528284208251928401516001600160601b0316600160a01b026001600160a01b039093169290921791015560ff87168252600490526040902084518590839081106127be576127be6134ea565b6020908102919091018101515182546001810184556000938452919092200180546001600160a01b0319166001600160a01b03909216919091179055835160ff8616907f10565e56cacbf32eca267945f054fec02e59750032d113d3302182ad967f540490869084908110612835576128356134ea565b602090810291909101810151516040516001600160a01b0390911681520160405180910390a28460ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a75858381518110612892576128926134ea565b6020026020010151600001518684815181106128b0576128b06134ea565b6020026020010151602001516040516128ca929190612c6c565b60405180910390a2806128dc81613531565b9150506125a3565b5050505050565b816000015163ffffffff168163ffffffff1610156129905760405162461bcd60e51b815260206004820152605660248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a207374616b6555706461746520697320606482015275333937b69030b33a32b910313637b1b5a73ab6b132b960511b608482015260a401610611565b602082015163ffffffff1615806129b65750816020015163ffffffff168163ffffffff16105b612a615760405162461bcd60e51b815260206004820152606a60248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a2074686572652069732061206e65776560648201527f72207374616b6555706461746520617661696c61626c65206265666f726520626084820152693637b1b5a73ab6b132b960b11b60a482015260c401610611565b5050565b600083815260026020908152604080832060ff86168452909152812054805b8015612b0657600086815260026020908152604080832060ff89168452909152902063ffffffff851690612ab96001846135be565b81548110612ac957612ac96134ea565b60009182526020909120015463ffffffff1611612af457612aeb6001826135be565b92505050611521565b80612afe8161375e565b915050612a84565b5060405162461bcd60e51b815260206004820152608160248201527f5374616b6552656769737472792e5f6765745374616b65557064617465496e6460448201527f6578466f724f70657261746f724174426c6f636b4e756d6265723a206e6f207360648201527f74616b652075706461746520666f756e6420666f72206f70657261746f72496460848201527f20616e642071756f72756d4e756d62657220617420626c6f636b206e756d626560a4820152603960f91b60c482015260e401610611565b60006115216001600160601b03808516908416613775565b600080821215612c0757612bf6826137b4565b612c0090846137d1565b9050610cc5565b612c00828461371b565b803560ff81168114612c2257600080fd5b919050565b600060208284031215612c3957600080fd5b61152182612c11565b60008060408385031215612c5557600080fd5b612c5e83612c11565b946020939093013593505050565b6001600160a01b039290921682526001600160601b0316602082015260400190565b6001600160a01b0381168114612ca357600080fd5b50565b60008060408385031215612cb957600080fd5b612cc283612c11565b91506020830135612cd281612c8e565b809150509250929050565b60008083601f840112612cef57600080fd5b5081356001600160401b03811115612d0657600080fd5b6020830191508360208260051b850101111561203e57600080fd5b600080600080600060608688031215612d3957600080fd5b612d4286612c11565b945060208601356001600160401b0380821115612d5e57600080fd5b612d6a89838a01612cdd565b90965094506040880135915080821115612d8357600080fd5b50612d9088828901612cdd565b969995985093965092949392505050565b60008083601f840112612db357600080fd5b5081356001600160401b03811115612dca57600080fd5b60208301915083602082850101111561203e57600080fd5b60008060008060608587031215612df857600080fd5b8435612e0381612c8e565b93506020850135925060408501356001600160401b03811115612e2557600080fd5b612e3187828801612da1565b95989497509550505050565b600081518084526020808501945080840160005b83811015612e765781516001600160601b031687529582019590820190600101612e51565b509495945050505050565b604081526000612e946040830185612e3d565b82810360208401526124368185612e3d565b60008060408385031215612eb957600080fd5b82359150612ec960208401612c11565b90509250929050565b6020808252825182820181905260009190848201906040850190845b81811015612f3e57612f2b83855163ffffffff808251168352806020830151166020840152506001600160601b0360408201511660408301525050565b9284019260609290920191600101612eee565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715612f8257612f82612f4a565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612fb057612fb0612f4a565b604052919050565b60006001600160401b03821115612fd157612fd1612f4a565b5060051b60200190565b60008060408385031215612fee57600080fd5b612ff783612c11565b91506020808401356001600160401b0381111561301357600080fd5b8401601f8101861361302457600080fd5b803561303761303282612fb8565b612f88565b81815260059190911b8201830190838101908883111561305657600080fd5b928401925b828410156130745783358252928401929084019061305b565b80955050505050509250929050565b803563ffffffff81168114612c2257600080fd5b6000806000604084860312156130ac57600080fd5b6130b584613083565b925060208401356001600160401b038111156130d057600080fd5b6130dc86828701612da1565b9497909650939450505050565b6020808252825182820181905260009190848201906040850190845b81811015612f3e57835163ffffffff1683529284019291840191600101613105565b60008060006060848603121561313c57600080fd5b61314584612c11565b95602085013595506040909401359392505050565b815163ffffffff9081168252602080840151909116908201526040808301516001600160601b03169082015260608101610cc5565b80356001600160601b0381168114612c2257600080fd5b600080604083850312156131b957600080fd5b6131c283612c11565b9150612ec96020840161318f565b6000806000604084860312156131e557600080fd5b8335925060208401356001600160401b038111156130d057600080fd5b600082601f83011261321357600080fd5b8135602061322361303283612fb8565b82815260069290921b8401810191818101908684111561324257600080fd5b8286015b84811015613291576040818903121561325f5760008081fd5b613267612f60565b813561327281612c8e565b815261327f82860161318f565b81860152835291830191604001613246565b509695505050505050565b600080604083850312156132af57600080fd5b6132b883612c11565b915060208301356001600160401b038111156132d357600080fd5b6132df85828601613202565b9150509250929050565b6000806000606084860312156132fe57600080fd5b61330784612c11565b925061331560208501613083565b9150604084013590509250925092565b60008060006060848603121561333a57600080fd5b8335925061334a60208501612c11565b915061335860408501613083565b90509250925092565b6000806000806080858703121561337757600080fd5b61338085612c11565b935061338e60208601613083565b93969395505050506040820135916060013590565b6000806000606084860312156133b857600080fd5b6133c184612c11565b92506133cf6020850161318f565b915060408401356001600160401b038111156133ea57600080fd5b6133f686828701613202565b9150509250925092565b60208082526031908201527f5374616b6552656769737472792e71756f72756d4578697374733a2071756f726040820152701d5b48191bd95cc81b9bdd08195e1a5cdd607a1b606082015260800190565b60006020828403121561346357600080fd5b815161152181612c8e565b60208082526056908201527f5374616b6552656769737472792e6f6e6c79436f6f7264696e61746f724f776e60408201527f65723a2063616c6c6572206973206e6f7420746865206f776e6572206f6620746060820152753432903932b3b4b9ba393ca1b7b7b93234b730ba37b960511b608082015260a00190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561351257600080fd5b6115218261318f565b634e487b7160e01b600052601160045260246000fd5b60006000198214156135455761354561351b565b5060010190565b6020808252604c908201527f5374616b6552656769737472792e6f6e6c795265676973747279436f6f72646960408201527f6e61746f723a2063616c6c6572206973206e6f7420746865205265676973747260608201526b3ca1b7b7b93234b730ba37b960a11b608082015260a00190565b6000828210156135d0576135d061351b565b500390565b634e487b7160e01b600052603160045260246000fd5b60006040820160018060a01b03808616845260206040818601528286548085526060870191508760005282600020945060005b8181101561363c57855485168352600195860195928401920161361e565b509098975050505050505050565b6000602080838503121561365d57600080fd5b82516001600160401b0381111561367357600080fd5b8301601f8101851361368457600080fd5b805161369261303282612fb8565b81815260059190911b820183019083810190878311156136b157600080fd5b928401925b828410156136cf578351825292840192908401906136b6565b979650505050505050565b60008160001904831182151516156136f4576136f461351b565b500290565b60008261371657634e487b7160e01b600052601260045260246000fd5b500490565b60006001600160601b0380831681851680830382111561373d5761373d61351b565b01949350505050565b600082198211156137595761375961351b565b500190565b60008161376d5761376d61351b565b506000190190565b60008083128015600160ff1b8501841216156137935761379361351b565b6001600160ff1b03840183138116156137ae576137ae61351b565b50500390565b6000600160ff1b8214156137ca576137ca61351b565b5060000390565b60006001600160601b03838116908316818110156137f1576137f161351b565b03939250505056fe5374616b6552656769737472792e5f6164645374726174656779506172616d73a26469706673582212200fe8ca3f408593b1eec8ba0fd42384f0e97d49f1877faaedb540e7dacd625d8f64736f6c634300080c0033", } // ContractStakeRegistryABI is the input ABI used to generate the binding from. diff --git a/contracts/lib/eigenlayer-middleware b/contracts/lib/eigenlayer-middleware index 59ebd32ddf..74c86d21ba 160000 --- a/contracts/lib/eigenlayer-middleware +++ b/contracts/lib/eigenlayer-middleware @@ -1 +1 @@ -Subproject commit 59ebd32ddf550587a2c137395bd16e6ad54522e7 +Subproject commit 74c86d21ba6dcdc060a01f9933085076f9f6facd diff --git a/contracts/script/EigenDADeployer.s.sol b/contracts/script/EigenDADeployer.s.sol index fba50be2e0..00acb14312 100644 --- a/contracts/script/EigenDADeployer.s.sol +++ b/contracts/script/EigenDADeployer.s.sol @@ -15,7 +15,7 @@ import {IStakeRegistry, IDelegationManager} from "eigenlayer-middleware/interfac import {IServiceManager} from "eigenlayer-middleware/interfaces/IServiceManager.sol"; import {IBLSApkRegistry} from "eigenlayer-middleware/interfaces/IBLSApkRegistry.sol"; -import {EigenDAServiceManager, IAVSDirectory} from "../src/core/EigenDAServiceManager.sol"; +import {EigenDAServiceManager, IAVSDirectory, IPaymentCoordinator} from "../src/core/EigenDAServiceManager.sol"; import {EigenDAHasher} from "../src/libraries/EigenDAHasher.sol"; import {DeployOpenEigenLayer, ProxyAdmin, ERC20PresetFixedSupply, TransparentUpgradeableProxy, IPauserRegistry} from "./DeployOpenEigenLayer.s.sol"; @@ -187,6 +187,7 @@ contract EigenDADeployer is DeployOpenEigenLayer { eigenDAServiceManagerImplementation = new EigenDAServiceManager( IAVSDirectory(address(avsDirectory)), + IPaymentCoordinator(address(0)), registryCoordinator, stakeRegistry ); diff --git a/contracts/script/deploy/mainnet/Mainnet_Deploy.s.sol b/contracts/script/deploy/mainnet/Mainnet_Deploy.s.sol index 3126e53f36..cdd86e9a52 100644 --- a/contracts/script/deploy/mainnet/Mainnet_Deploy.s.sol +++ b/contracts/script/deploy/mainnet/Mainnet_Deploy.s.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 +/* pragma solidity =0.8.12; import {PauserRegistry} from "eigenlayer-core/contracts/permissions/PauserRegistry.sol"; @@ -88,7 +89,7 @@ contract Deployer_Mainnet is ExistingDeploymentParser { /** * First, deploy upgradeable proxy contracts that **will point** to the implementations. Since the implementation contracts are * not yet deployed, we give these proxies an empty contract as the initial implementation, to act as if they have no code. - */ + *//* eigenDAServiceManager = EigenDAServiceManager( address(new TransparentUpgradeableProxy(address(emptyContract), address(eigenDAProxyAdmin), "")) ); @@ -271,7 +272,7 @@ contract Deployer_Mainnet is ExistingDeploymentParser { /** * First, deploy upgradeable proxy contracts that **will point** to the implementations. Since the implementation contracts are * not yet deployed, we give these proxies an empty contract as the initial implementation, to act as if they have no code. - */ + *//* eigenDAServiceManager = EigenDAServiceManager( address(new TransparentUpgradeableProxy(address(emptyContract), address(eigenDAProxyAdmin), "")) ); @@ -556,3 +557,4 @@ contract Deployer_Mainnet is ExistingDeploymentParser { ejector = stdJson.readAddress(config_data, ".permissions.ejector"); } } +*/ \ No newline at end of file diff --git a/contracts/src/core/EigenDAServiceManager.sol b/contracts/src/core/EigenDAServiceManager.sol index 80f5795d1c..daf253c9ad 100644 --- a/contracts/src/core/EigenDAServiceManager.sol +++ b/contracts/src/core/EigenDAServiceManager.sol @@ -4,7 +4,7 @@ pragma solidity ^0.8.9; import {Pausable} from "eigenlayer-core/contracts/permissions/Pausable.sol"; import {IPauserRegistry} from "eigenlayer-core/contracts/interfaces/IPauserRegistry.sol"; -import {ServiceManagerBase, IAVSDirectory} from "eigenlayer-middleware/ServiceManagerBase.sol"; +import {ServiceManagerBase, IAVSDirectory, IPaymentCoordinator} from "eigenlayer-middleware/ServiceManagerBase.sol"; import {BLSSignatureChecker} from "eigenlayer-middleware/BLSSignatureChecker.sol"; import {IRegistryCoordinator} from "eigenlayer-middleware/interfaces/IRegistryCoordinator.sol"; import {IStakeRegistry} from "eigenlayer-middleware/interfaces/IStakeRegistry.sol"; @@ -34,11 +34,12 @@ contract EigenDAServiceManager is EigenDAServiceManagerStorage, ServiceManagerBa constructor( IAVSDirectory __avsDirectory, + IPaymentCoordinator __paymentCoordinator, IRegistryCoordinator __registryCoordinator, IStakeRegistry __stakeRegistry ) BLSSignatureChecker(__registryCoordinator) - ServiceManagerBase(__avsDirectory, __registryCoordinator, __stakeRegistry) + ServiceManagerBase(__avsDirectory, __paymentCoordinator, __registryCoordinator, __stakeRegistry) { _disableInitializers(); } diff --git a/contracts/test/unit/EigenDABlobUtils.t.sol b/contracts/test/unit/EigenDABlobUtils.t.sol index 2ff183e7b3..8126f11c88 100644 --- a/contracts/test/unit/EigenDABlobUtils.t.sol +++ b/contracts/test/unit/EigenDABlobUtils.t.sol @@ -5,7 +5,7 @@ import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.so import "../../lib/eigenlayer-middleware/test/utils/BLSMockAVSDeployer.sol"; import {EigenDAHasher} from "../../src/libraries/EigenDAHasher.sol"; -import {EigenDAServiceManager} from "../../src/core/EigenDAServiceManager.sol"; +import {EigenDAServiceManager, IPaymentCoordinator} from "../../src/core/EigenDAServiceManager.sol"; import {EigenDARollupUtils} from "../../src/libraries/EigenDARollupUtils.sol"; import {EigenDAHasher} from "../../src/libraries/EigenDAHasher.sol"; import {EigenDABlobUtilsHarness} from "../harnesses/EigenDABlobUtilsHarness.sol"; @@ -44,6 +44,7 @@ contract EigenDABlobUtilsUnit is BLSMockAVSDeployer { eigenDAServiceManagerImplementation = new EigenDAServiceManager( avsDirectory, + IPaymentCoordinator(address(0)), registryCoordinator, stakeRegistry ); diff --git a/contracts/test/unit/EigenDAServiceManagerUnit.t.sol b/contracts/test/unit/EigenDAServiceManagerUnit.t.sol index 49ef10d0fb..57ae5b3b4f 100644 --- a/contracts/test/unit/EigenDAServiceManagerUnit.t.sol +++ b/contracts/test/unit/EigenDAServiceManagerUnit.t.sol @@ -4,7 +4,7 @@ pragma solidity =0.8.12; import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol"; import "../../lib/eigenlayer-middleware/test/utils/BLSMockAVSDeployer.sol"; -import {EigenDAServiceManager} from "../../src/core/EigenDAServiceManager.sol"; +import {EigenDAServiceManager, IPaymentCoordinator} from "../../src/core/EigenDAServiceManager.sol"; import {EigenDAHasher} from "../../src/libraries/EigenDAHasher.sol"; import {EigenDAServiceManager} from "../../src/core/EigenDAServiceManager.sol"; import {IEigenDAServiceManager} from "../../src/interfaces/IEigenDAServiceManager.sol"; @@ -33,6 +33,7 @@ contract EigenDAServiceManagerUnit is BLSMockAVSDeployer { eigenDAServiceManagerImplementation = new EigenDAServiceManager( avsDirectory, + IPaymentCoordinator(address(0)), registryCoordinator, stakeRegistry ); diff --git a/contracts/test/unit/MockRollup.t.sol b/contracts/test/unit/MockRollup.t.sol index 4cdc82e81a..ba51ef941d 100644 --- a/contracts/test/unit/MockRollup.t.sol +++ b/contracts/test/unit/MockRollup.t.sol @@ -7,7 +7,7 @@ import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.so import {BLSMockAVSDeployer} from "../../lib/eigenlayer-middleware/test/utils/BLSMockAVSDeployer.sol"; import {MockRollup} from "../../src/rollup/MockRollup.sol"; import {EigenDAHasher} from "../../src/libraries/EigenDAHasher.sol"; -import {EigenDAServiceManager} from "../../src/core/EigenDAServiceManager.sol"; +import {EigenDAServiceManager, IPaymentCoordinator} from "../../src/core/EigenDAServiceManager.sol"; import {IEigenDAServiceManager} from "../../src/interfaces/IEigenDAServiceManager.sol"; import {EigenDARollupUtils} from "../../src/libraries/EigenDARollupUtils.sol"; import {BN254} from "eigenlayer-middleware/libraries/BN254.sol"; @@ -54,6 +54,7 @@ contract MockRollupTest is BLSMockAVSDeployer { eigenDAServiceManagerImplementation = new EigenDAServiceManager( avsDirectory, + IPaymentCoordinator(address(0)), registryCoordinator, stakeRegistry );