diff --git a/subgraphs/eigenda-batch-metadata/abis/EigenDAServiceManager.json b/subgraphs/eigenda-batch-metadata/abis/EigenDAServiceManager.json index ef5e86299e..35008da34c 100644 --- a/subgraphs/eigenda-batch-metadata/abis/EigenDAServiceManager.json +++ b/subgraphs/eigenda-batch-metadata/abis/EigenDAServiceManager.json @@ -1,1030 +1,963 @@ [ { - "inputs": [ - { - "internalType": "contract IBLSRegistryCoordinatorWithIndices", - "name": "_registryCoordinator", - "type": "address" - }, - { - "internalType": "contract IStrategyManager", - "name": "_strategyManager", - "type": "address" - }, - { - "internalType": "contract IDelegationManager", - "name": "_delegationMananger", - "type": "address" - }, - { - "internalType": "contract ISlasher", - "name": "_slasher", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "batchHeaderHash", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint32", - "name": "batchId", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "uint96", - "name": "fee", - "type": "uint96" - } - ], - "name": "BatchConfirmed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "previousValue", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "newValue", - "type": "uint256" - } - ], - "name": "FeePerBytePerTimeSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "previousAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "newAddress", - "type": "address" - } - ], - "name": "FeeSetterChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint8", - "name": "version", - "type": "uint8" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "newPausedStatus", - "type": "uint256" - } - ], - "name": "Paused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "contract IPauserRegistry", - "name": "pauserRegistry", - "type": "address" - }, - { - "indexed": false, - "internalType": "contract IPauserRegistry", - "name": "newPauserRegistry", - "type": "address" - } - ], - "name": "PauserRegistrySet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "previousAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "newAddress", - "type": "address" - } - ], - "name": "PaymentManagerSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "newPausedStatus", - "type": "uint256" - } - ], - "name": "Unpaused", - "type": "event" + "type": "constructor", + "inputs": [ + { + "name": "__delegationMananger", + "type": "address", + "internalType": "contract IDelegationManager" + }, + { + "name": "__registryCoordinator", + "type": "address", + "internalType": "contract IRegistryCoordinator" + }, + { + "name": "__stakeRegistry", + "type": "address", + "internalType": "contract IStakeRegistry" + } + ], + "stateMutability": "nonpayable" }, { - "inputs": [], - "name": "BLOCK_STALE_MEASURE", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" + "type": "function", + "name": "BLOCK_STALE_MEASURE", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint32", + "internalType": "uint32" + } + ], + "stateMutability": "view" }, { - "inputs": [], - "name": "STORE_DURATION_BLOCKS", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" + "type": "function", + "name": "STORE_DURATION_BLOCKS", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint32", + "internalType": "uint32" + } + ], + "stateMutability": "view" }, { - "inputs": [], - "name": "THRESHOLD_DENOMINATOR", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" + "type": "function", + "name": "THRESHOLD_DENOMINATOR", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" }, { - "inputs": [], - "name": "batchId", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" + "type": "function", + "name": "batchConfirmer", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" }, { - "inputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "name": "batchIdToBatchMetadataHash", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" + "type": "function", + "name": "batchId", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint32", + "internalType": "uint32" + } + ], + "stateMutability": "view" }, { - "inputs": [], - "name": "blsPubkeyRegistry", - "outputs": [ - { - "internalType": "contract IBLSPubkeyRegistry", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" + "type": "function", + "name": "batchIdToBatchMetadataHash", + "inputs": [ + { + "name": "", + "type": "uint32", + "internalType": "uint32" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" }, { - "inputs": [ - { - "internalType": "uint256", - "name": "totalBytes", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_feePerBytePerTime", - "type": "uint256" - }, - { - "internalType": "uint32", - "name": "storePeriodLength", - "type": "uint32" - } - ], - "name": "calculateFee", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" + "type": "function", + "name": "blsApkRegistry", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IBLSApkRegistry" + } + ], + "stateMutability": "view" }, { - "inputs": [ - { - "internalType": "bytes32", - "name": "msgHash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "quorumNumbers", - "type": "bytes" - }, - { - "internalType": "uint32", - "name": "referenceBlockNumber", - "type": "uint32" - }, - { - "components": [ - { - "internalType": "uint32[]", - "name": "nonSignerQuorumBitmapIndices", - "type": "uint32[]" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "X", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "Y", - "type": "uint256" - } - ], - "internalType": "struct BN254.G1Point[]", - "name": "nonSignerPubkeys", - "type": "tuple[]" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "X", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "Y", - "type": "uint256" - } - ], - "internalType": "struct BN254.G1Point[]", - "name": "quorumApks", - "type": "tuple[]" - }, - { - "components": [ - { - "internalType": "uint256[2]", - "name": "X", - "type": "uint256[2]" - }, - { - "internalType": "uint256[2]", - "name": "Y", - "type": "uint256[2]" - } - ], - "internalType": "struct BN254.G2Point", - "name": "apkG2", - "type": "tuple" - }, + "type": "function", + "name": "checkSignatures", + "inputs": [ { - "components": [ - { - "internalType": "uint256", - "name": "X", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "Y", - "type": "uint256" - } - ], - "internalType": "struct BN254.G1Point", - "name": "sigma", - "type": "tuple" + "name": "msgHash", + "type": "bytes32", + "internalType": "bytes32" }, { - "internalType": "uint32[]", - "name": "quorumApkIndices", - "type": "uint32[]" + "name": "quorumNumbers", + "type": "bytes", + "internalType": "bytes" }, { - "internalType": "uint32[]", - "name": "totalStakeIndices", - "type": "uint32[]" + "name": "referenceBlockNumber", + "type": "uint32", + "internalType": "uint32" }, { - "internalType": "uint32[][]", - "name": "nonSignerStakeIndices", - "type": "uint32[][]" + "name": "params", + "type": "tuple", + "internalType": "struct IBLSSignatureChecker.NonSignerStakesAndSignature", + "components": [ + { + "name": "nonSignerQuorumBitmapIndices", + "type": "uint32[]", + "internalType": "uint32[]" + }, + { + "name": "nonSignerPubkeys", + "type": "tuple[]", + "internalType": "struct BN254.G1Point[]", + "components": [ + { + "name": "X", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "Y", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "name": "quorumApks", + "type": "tuple[]", + "internalType": "struct BN254.G1Point[]", + "components": [ + { + "name": "X", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "Y", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "name": "apkG2", + "type": "tuple", + "internalType": "struct BN254.G2Point", + "components": [ + { + "name": "X", + "type": "uint256[2]", + "internalType": "uint256[2]" + }, + { + "name": "Y", + "type": "uint256[2]", + "internalType": "uint256[2]" + } + ] + }, + { + "name": "sigma", + "type": "tuple", + "internalType": "struct BN254.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[][]" + } + ] } - ], - "internalType": "struct IBLSSignatureChecker.NonSignerStakesAndSignature", - "name": "nonSignerStakesAndSignature", - "type": "tuple" - } - ], - "name": "checkSignatures", - "outputs": [ - { - "components": [ - { - "internalType": "uint96[]", - "name": "signedStakeForQuorum", - "type": "uint96[]" + ], + "outputs": [ + { + "name": "", + "type": "tuple", + "internalType": "struct IBLSSignatureChecker.QuorumStakeTotals", + "components": [ + { + "name": "signedStakeForQuorum", + "type": "uint96[]", + "internalType": "uint96[]" + }, + { + "name": "totalStakeForQuorum", + "type": "uint96[]", + "internalType": "uint96[]" + } + ] }, { - "internalType": "uint96[]", - "name": "totalStakeForQuorum", - "type": "uint96[]" + "name": "", + "type": "bytes32", + "internalType": "bytes32" } - ], - "internalType": "struct IBLSSignatureChecker.QuorumStakeTotals", - "name": "", - "type": "tuple" - }, - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" + ], + "stateMutability": "view" }, { - "inputs": [ - { - "components": [ - { - "internalType": "bytes32", - "name": "blobHeadersRoot", - "type": "bytes32" - }, + "type": "function", + "name": "confirmBatch", + "inputs": [ { - "internalType": "bytes", - "name": "quorumNumbers", - "type": "bytes" + "name": "batchHeader", + "type": "tuple", + "internalType": "struct IEigenDAServiceManager.BatchHeader", + "components": [ + { + "name": "blobHeadersRoot", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "quorumNumbers", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "quorumThresholdPercentages", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "referenceBlockNumber", + "type": "uint32", + "internalType": "uint32" + } + ] }, { - "internalType": "bytes", - "name": "quorumThresholdPercentages", - "type": "bytes" - }, + "name": "nonSignerStakesAndSignature", + "type": "tuple", + "internalType": "struct IBLSSignatureChecker.NonSignerStakesAndSignature", + "components": [ + { + "name": "nonSignerQuorumBitmapIndices", + "type": "uint32[]", + "internalType": "uint32[]" + }, + { + "name": "nonSignerPubkeys", + "type": "tuple[]", + "internalType": "struct BN254.G1Point[]", + "components": [ + { + "name": "X", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "Y", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "name": "quorumApks", + "type": "tuple[]", + "internalType": "struct BN254.G1Point[]", + "components": [ + { + "name": "X", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "Y", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "name": "apkG2", + "type": "tuple", + "internalType": "struct BN254.G2Point", + "components": [ + { + "name": "X", + "type": "uint256[2]", + "internalType": "uint256[2]" + }, + { + "name": "Y", + "type": "uint256[2]", + "internalType": "uint256[2]" + } + ] + }, + { + "name": "sigma", + "type": "tuple", + "internalType": "struct BN254.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": [ { - "internalType": "uint32", - "name": "referenceBlockNumber", - "type": "uint32" + "name": "", + "type": "address", + "internalType": "contract IDelegationManager" } - ], - "internalType": "struct IEigenDAServiceManager.BatchHeader", - "name": "batchHeader", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint32[]", - "name": "nonSignerQuorumBitmapIndices", - "type": "uint32[]" - }, + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "deregisterOperatorFromAVS", + "inputs": [ { - "components": [ - { - "internalType": "uint256", - "name": "X", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "Y", - "type": "uint256" - } - ], - "internalType": "struct BN254.G1Point[]", - "name": "nonSignerPubkeys", - "type": "tuple[]" - }, + "name": "operator", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "getOperatorRestakedStrategies", + "inputs": [ { - "components": [ - { - "internalType": "uint256", - "name": "X", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "Y", - "type": "uint256" - } - ], - "internalType": "struct BN254.G1Point[]", - "name": "quorumApks", - "type": "tuple[]" - }, + "name": "operator", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ { - "components": [ - { - "internalType": "uint256[2]", - "name": "X", - "type": "uint256[2]" - }, - { - "internalType": "uint256[2]", - "name": "Y", - "type": "uint256[2]" - } - ], - "internalType": "struct BN254.G2Point", - "name": "apkG2", - "type": "tuple" - }, + "name": "", + "type": "address[]", + "internalType": "address[]" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getRestakeableStrategies", + "inputs": [], + "outputs": [ { - "components": [ - { - "internalType": "uint256", - "name": "X", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "Y", - "type": "uint256" - } - ], - "internalType": "struct BN254.G1Point", - "name": "sigma", - "type": "tuple" - }, + "name": "", + "type": "address[]", + "internalType": "address[]" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initialize", + "inputs": [ { - "internalType": "uint32[]", - "name": "quorumApkIndices", - "type": "uint32[]" + "name": "_pauserRegistry", + "type": "address", + "internalType": "contract IPauserRegistry" }, { - "internalType": "uint32[]", - "name": "totalStakeIndices", - "type": "uint32[]" + "name": "_initialOwner", + "type": "address", + "internalType": "address" }, { - "internalType": "uint32[][]", - "name": "nonSignerStakeIndices", - "type": "uint32[][]" + "name": "_batchConfirmer", + "type": "address", + "internalType": "address" } - ], - "internalType": "struct IBLSSignatureChecker.NonSignerStakesAndSignature", - "name": "nonSignerStakesAndSignature", - "type": "tuple" - } - ], - "name": "confirmBatch", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + ], + "outputs": [], + "stateMutability": "nonpayable" }, { - "inputs": [], - "name": "delegationManager", - "outputs": [ - { - "internalType": "contract IDelegationManager", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" + "type": "function", + "name": "initialize", + "inputs": [ + { + "name": "initialOwner", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" }, { - "inputs": [], - "name": "feePerBytePerTime", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" + "type": "function", + "name": "latestServeUntilBlock", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint32", + "internalType": "uint32" + } + ], + "stateMutability": "view" }, { - "inputs": [], - "name": "feeSetter", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" + "type": "function", + "name": "owner", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" }, { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "freezeOperator", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "type": "function", + "name": "pause", + "inputs": [ + { + "name": "newPausedStatus", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" }, { - "inputs": [ - { - "internalType": "contract IPauserRegistry", - "name": "_pauserRegistry", - "type": "address" - }, - { - "internalType": "address", - "name": "initialOwner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_feePerBytePerTime", - "type": "uint256" - }, - { - "internalType": "address", - "name": "_feeSetter", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "type": "function", + "name": "pauseAll", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" }, { - "inputs": [], - "name": "latestServeUntilBlock", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" + "type": "function", + "name": "paused", + "inputs": [ + { + "name": "index", + "type": "uint8", + "internalType": "uint8" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" }, { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" + "type": "function", + "name": "paused", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" }, { - "inputs": [ - { - "internalType": "uint256", - "name": "newPausedStatus", - "type": "uint256" - } - ], - "name": "pause", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "type": "function", + "name": "pauserRegistry", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IPauserRegistry" + } + ], + "stateMutability": "view" }, { - "inputs": [], - "name": "pauseAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "type": "function", + "name": "registerOperatorToAVS", + "inputs": [ + { + "name": "operator", + "type": "address", + "internalType": "address" + }, + { + "name": "operatorSignature", + "type": "tuple", + "internalType": "struct ISignatureUtils.SignatureWithSaltAndExpiry", + "components": [ + { + "name": "signature", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "salt", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "expiry", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ], + "outputs": [], + "stateMutability": "nonpayable" }, { - "inputs": [ - { - "internalType": "uint8", - "name": "index", - "type": "uint8" - } - ], - "name": "paused", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" + "type": "function", + "name": "registryCoordinator", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IRegistryCoordinator" + } + ], + "stateMutability": "view" }, { - "inputs": [], - "name": "paused", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" + "type": "function", + "name": "renounceOwnership", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" }, { - "inputs": [], - "name": "pauserRegistry", - "outputs": [ - { - "internalType": "contract IPauserRegistry", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" + "type": "function", + "name": "setBatchConfirmer", + "inputs": [ + { + "name": "_batchConfirmer", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" }, { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "uint32", - "name": "serveUntilBlock", - "type": "uint32" - } - ], - "name": "recordFirstStakeUpdate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "type": "function", + "name": "setMetadataURI", + "inputs": [ + { + "name": "_metadataURI", + "type": "string", + "internalType": "string" + } + ], + "outputs": [], + "stateMutability": "nonpayable" }, { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "uint32", - "name": "serveUntilBlock", - "type": "uint32" - } - ], - "name": "recordLastStakeUpdateAndRevokeSlashingAbility", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "type": "function", + "name": "setPauserRegistry", + "inputs": [ + { + "name": "newPauserRegistry", + "type": "address", + "internalType": "contract IPauserRegistry" + } + ], + "outputs": [], + "stateMutability": "nonpayable" }, { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "uint32", - "name": "updateBlock", - "type": "uint32" - }, - { - "internalType": "uint32", - "name": "serveUntilBlock", - "type": "uint32" - }, - { - "internalType": "uint256", - "name": "prevElement", - "type": "uint256" - } - ], - "name": "recordStakeUpdate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "type": "function", + "name": "setStaleStakesForbidden", + "inputs": [ + { + "name": "value", + "type": "bool", + "internalType": "bool" + } + ], + "outputs": [], + "stateMutability": "nonpayable" }, { - "inputs": [], - "name": "registryCoordinator", - "outputs": [ - { - "internalType": "contract IRegistryCoordinator", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" + "type": "function", + "name": "stakeRegistry", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IStakeRegistry" + } + ], + "stateMutability": "view" }, { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "type": "function", + "name": "staleStakesForbidden", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" }, { - "inputs": [ - { - "internalType": "uint256", - "name": "_feePerBytePerTime", - "type": "uint256" - } - ], - "name": "setFeePerBytePerTime", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "type": "function", + "name": "taskNumber", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint32", + "internalType": "uint32" + } + ], + "stateMutability": "view" }, { - "inputs": [ - { - "internalType": "address", - "name": "_feeSetter", - "type": "address" - } - ], - "name": "setFeeSetter", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "type": "function", + "name": "transferOwnership", + "inputs": [ + { + "name": "newOwner", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" }, { - "inputs": [ - { - "internalType": "contract IPauserRegistry", - "name": "newPauserRegistry", - "type": "address" - } - ], - "name": "setPauserRegistry", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "type": "function", + "name": "trySignatureAndApkVerification", + "inputs": [ + { + "name": "msgHash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "apk", + "type": "tuple", + "internalType": "struct BN254.G1Point", + "components": [ + { + "name": "X", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "Y", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "name": "apkG2", + "type": "tuple", + "internalType": "struct BN254.G2Point", + "components": [ + { + "name": "X", + "type": "uint256[2]", + "internalType": "uint256[2]" + }, + { + "name": "Y", + "type": "uint256[2]", + "internalType": "uint256[2]" + } + ] + }, + { + "name": "sigma", + "type": "tuple", + "internalType": "struct BN254.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" }, { - "inputs": [], - "name": "slasher", - "outputs": [ - { - "internalType": "contract ISlasher", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" + "type": "function", + "name": "unpause", + "inputs": [ + { + "name": "newPausedStatus", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" }, { - "inputs": [], - "name": "stakeRegistry", - "outputs": [ - { - "internalType": "contract IStakeRegistry", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" + "type": "event", + "name": "BatchConfirmed", + "inputs": [ + { + "name": "batchHeaderHash", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + }, + { + "name": "batchId", + "type": "uint32", + "indexed": false, + "internalType": "uint32" + } + ], + "anonymous": false }, { - "inputs": [], - "name": "strategyManager", - "outputs": [ - { - "internalType": "contract IStrategyManager", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" + "type": "event", + "name": "BatchConfirmerChanged", + "inputs": [ + { + "name": "previousAddress", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "newAddress", + "type": "address", + "indexed": false, + "internalType": "address" + } + ], + "anonymous": false }, { - "inputs": [], - "name": "taskNumber", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" + "type": "event", + "name": "Initialized", + "inputs": [ + { + "name": "version", + "type": "uint8", + "indexed": false, + "internalType": "uint8" + } + ], + "anonymous": false }, { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "type": "event", + "name": "OwnershipTransferred", + "inputs": [ + { + "name": "previousOwner", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "newOwner", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false }, { - "inputs": [ - { - "internalType": "bytes32", - "name": "msgHash", - "type": "bytes32" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "X", - "type": "uint256" + "type": "event", + "name": "Paused", + "inputs": [ + { + "name": "account", + "type": "address", + "indexed": true, + "internalType": "address" }, { - "internalType": "uint256", - "name": "Y", - "type": "uint256" + "name": "newPausedStatus", + "type": "uint256", + "indexed": false, + "internalType": "uint256" } - ], - "internalType": "struct BN254.G1Point", - "name": "apk", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint256[2]", - "name": "X", - "type": "uint256[2]" + ], + "anonymous": false + }, + { + "type": "event", + "name": "PauserRegistrySet", + "inputs": [ + { + "name": "pauserRegistry", + "type": "address", + "indexed": false, + "internalType": "contract IPauserRegistry" }, { - "internalType": "uint256[2]", - "name": "Y", - "type": "uint256[2]" + "name": "newPauserRegistry", + "type": "address", + "indexed": false, + "internalType": "contract IPauserRegistry" } - ], - "internalType": "struct BN254.G2Point", - "name": "apkG2", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "X", - "type": "uint256" - }, + ], + "anonymous": false + }, + { + "type": "event", + "name": "StaleStakesForbiddenUpdate", + "inputs": [ { - "internalType": "uint256", - "name": "Y", - "type": "uint256" + "name": "value", + "type": "bool", + "indexed": false, + "internalType": "bool" } - ], - "internalType": "struct BN254.G1Point", - "name": "sigma", - "type": "tuple" - } - ], - "name": "trySignatureAndApkVerification", - "outputs": [ - { - "internalType": "bool", - "name": "pairingSuccessful", - "type": "bool" - }, - { - "internalType": "bool", - "name": "siganatureIsValid", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" + ], + "anonymous": false }, { - "inputs": [ - { - "internalType": "uint256", - "name": "newPausedStatus", - "type": "uint256" - } - ], - "name": "unpause", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "type": "event", + "name": "Unpaused", + "inputs": [ + { + "name": "account", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "newPausedStatus", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false } ] \ No newline at end of file diff --git a/subgraphs/eigenda-batch-metadata/subgraph.yaml b/subgraphs/eigenda-batch-metadata/subgraph.yaml index ac7fa399dd..a92d01831a 100644 --- a/subgraphs/eigenda-batch-metadata/subgraph.yaml +++ b/subgraphs/eigenda-batch-metadata/subgraph.yaml @@ -22,7 +22,7 @@ dataSources: - function: confirmBatch((bytes32,bytes,bytes,uint32),(uint32[],(uint256,uint256)[],(uint256,uint256)[],(uint256[2],uint256[2]),(uint256,uint256),uint32[],uint32[],uint32[][])) handler: handleConfirmBatchCall eventHandlers: - - event: BatchConfirmed(indexed bytes32,uint32,uint96) + - event: BatchConfirmed(indexed bytes32,uint32) handler: handleBatchConfirmed receipt: true file: ./src/edasm.ts diff --git a/subgraphs/eigenda-batch-metadata/tests/edasm-utils.ts b/subgraphs/eigenda-batch-metadata/tests/edasm-utils.ts index 92e15907bd..835043db45 100644 --- a/subgraphs/eigenda-batch-metadata/tests/edasm-utils.ts +++ b/subgraphs/eigenda-batch-metadata/tests/edasm-utils.ts @@ -80,9 +80,6 @@ export function createNewBatchConfirmedEvent( batchConfirmedEvent.parameters.push( new ethereum.EventParam("batchId", ethereum.Value.fromUnsignedBigInt(batchId)) ) - batchConfirmedEvent.parameters.push( - new ethereum.EventParam("fee", ethereum.Value.fromUnsignedBigInt(fee)) - ) return batchConfirmedEvent } diff --git a/subgraphs/eigenda-batch-metadata/tests/edasm.test.ts b/subgraphs/eigenda-batch-metadata/tests/edasm.test.ts index e1d82f4292..b42f418943 100644 --- a/subgraphs/eigenda-batch-metadata/tests/edasm.test.ts +++ b/subgraphs/eigenda-batch-metadata/tests/edasm.test.ts @@ -97,12 +97,6 @@ describe("EigenDASM", () => { BATCH_PREFIX_BYTES.concat(confirmBatchCall.transaction.hash).toHexString() ) - assert.fieldEquals( - "NonSigning", - nonSigningEntityId.toHexString(), - "batch", - confirmBatchCall.transaction.hash.toHexString() - ) assert.fieldEquals( "NonSigning", diff --git a/subgraphs/eigenda-operator-state/abis/BLSApkRegistry.json b/subgraphs/eigenda-operator-state/abis/BLSApkRegistry.json index a5bfc88acb..3fde73d639 100644 --- a/subgraphs/eigenda-operator-state/abis/BLSApkRegistry.json +++ b/subgraphs/eigenda-operator-state/abis/BLSApkRegistry.json @@ -1,10460 +1,607 @@ -{ - "abi": [ - { - "type": "constructor", - "inputs": [ - { - "name": "_registryCoordinator", - "type": "address", - "internalType": "contract IRegistryCoordinator" - } - ], - "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": "struct BN254.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": "struct IBLSApkRegistry.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": "struct BN254.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": "struct IBLSApkRegistry.PubkeyRegistrationParams", - "components": [ - { - "name": "pubkeyRegistrationSignature", - "type": "tuple", - "internalType": "struct BN254.G1Point", - "components": [ - { - "name": "X", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "Y", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "name": "pubkeyG1", - "type": "tuple", - "internalType": "struct BN254.G1Point", - "components": [ - { - "name": "X", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "Y", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "name": "pubkeyG2", - "type": "tuple", - "internalType": "struct BN254.G2Point", - "components": [ - { - "name": "X", - "type": "uint256[2]", - "internalType": "uint256[2]" - }, - { - "name": "Y", - "type": "uint256[2]", - "internalType": "uint256[2]" - } - ] - } - ] - }, - { - "name": "pubkeyRegistrationMessageHash", - "type": "tuple", - "internalType": "struct BN254.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": "struct BN254.G1Point", - "components": [ - { - "name": "X", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "Y", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "name": "pubkeyG2", - "type": "tuple", - "indexed": false, - "internalType": "struct BN254.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": "quorumNumbers", - "type": "bytes", - "indexed": false, - "internalType": "bytes" - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "OperatorRemovedFromQuorums", - "inputs": [ - { - "name": "operator", - "type": "address", - "indexed": false, - "internalType": "address" - }, - { - "name": "quorumNumbers", - "type": "bytes", - "indexed": false, - "internalType": "bytes" - } - ], - "anonymous": false - } - ], - "bytecode": { - "object": "0x60a06040523480156200001157600080fd5b506040516200213738038062002137833981016040819052620000349162000116565b6001600160a01b038116608052806200004c62000054565b505062000148565b600054610100900460ff1615620000c15760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000114576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6000602082840312156200012957600080fd5b81516001600160a01b03811681146200014157600080fd5b9392505050565b608051611fb7620001806000396000818161030f01528181610466015281816105bf015281816109a501526110420152611fb76000f3fe608060405234801561001057600080fd5b50600436106101155760003560e01c80636d14a987116100a2578063bf79ce5811610071578063bf79ce58146103cc578063d5254a8c146103df578063de29fac0146103ff578063e8bb9ae61461041f578063f4e24fe51461044857600080fd5b80636d14a9871461030a5780637916cea6146103315780637ff81a8714610372578063a3db80e2146103a557600080fd5b80633fb27952116100e95780633fb27952146101df57806347b314e8146101f25780635f61a88414610233578063605747d51461028f57806368bccaac146102dd57600080fd5b8062a1f4cb1461011a57806313542a4e1461015b57806326d941f214610192578063377ed99d146101a7575b600080fd5b610141610128366004611905565b6003602052600090815260409020805460019091015482565b604080519283526020830191909152015b60405180910390f35b610184610169366004611905565b6001600160a01b031660009081526001602052604090205490565b604051908152602001610152565b6101a56101a0366004611938565b61045b565b005b6101ca6101b5366004611938565b60ff1660009081526004602052604090205490565b60405163ffffffff9091168152602001610152565b6101a56101ed3660046119c3565b6105b4565b61021b610200366004611a69565b6000908152600260205260409020546001600160a01b031690565b6040516001600160a01b039091168152602001610152565b610282610241366004611938565b60408051808201909152600080825260208201525060ff16600090815260056020908152604091829020825180840190935280548352600101549082015290565b6040516101529190611a82565b6102a261029d366004611a99565b610652565b60408051825167ffffffffffffffff1916815260208084015163ffffffff908116918301919091529282015190921690820152606001610152565b6102f06102eb366004611ac3565b6106e5565b60405167ffffffffffffffff199091168152602001610152565b61021b7f000000000000000000000000000000000000000000000000000000000000000081565b61034461033f366004611a99565b610880565b6040805167ffffffffffffffff19909416845263ffffffff9283166020850152911690820152606001610152565b610385610380366004611905565b6108cb565b604080518351815260209384015193810193909352820152606001610152565b6101416103b3366004611938565b6005602052600090815260409020805460019091015482565b6101846103da366004611b0b565b610998565b6103f26103ed366004611b68565b610dec565b6040516101529190611be0565b61018461040d366004611905565b60016020526000908152604090205481565b61021b61042d366004611a69565b6002602052600090815260409020546001600160a01b031681565b6101a56104563660046119c3565b611037565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104ac5760405162461bcd60e51b81526004016104a390611c2a565b60405180910390fd5b60ff81166000908152600460205260409020541561052b5760405162461bcd60e51b815260206004820152603660248201527f424c5341706b52656769737472792e696e697469616c697a6551756f72756d3a6044820152752071756f72756d20616c72656164792065786973747360501b60648201526084016104a3565b60ff166000908152600460209081526040808320815160608101835284815263ffffffff4381168286019081528285018781528454600181018655948852959096209151919092018054955194518316600160e01b026001600160e01b0395909316600160c01b026001600160e01b03199096169190931c179390931791909116919091179055565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105fc5760405162461bcd60e51b81526004016104a390611c2a565b6000610607836108cb565b50905061061482826110d0565b7f5358c5b42179178c8fc757734ac2a3198f9071c765ee0d8389211525f50052468383604051610645929190611c9e565b60405180910390a1505050565b604080516060810182526000808252602080830182905282840182905260ff86168252600490529190912080548390811061068f5761068f611d03565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b8204811694830194909452600160e01b90049092169082015290505b92915050565b60ff8316600090815260046020526040812080548291908490811061070c5761070c611d03565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b82048116948301859052600160e01b9091048116928201929092529250851610156107d35760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a20696e64657820746f6f20726563656e74000060648201526084016104a3565b604081015163ffffffff1615806107f95750806040015163ffffffff168463ffffffff16105b6108775760405162461bcd60e51b815260206004820152604360248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a206e6f74206c61746573742061706b2075706460648201526261746560e81b608482015260a4016104a3565b51949350505050565b6004602052816000526040600020818154811061089c57600080fd5b600091825260209091200154604081901b925063ffffffff600160c01b820481169250600160e01b9091041683565b60408051808201909152600080825260208201526001600160a01b03821660008181526003602090815260408083208151808301835281548152600191820154818501529484529091528120549091908061098e5760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e676574526567697374657265645075626b60448201527f65793a206f70657261746f72206973206e6f742072656769737465726564000060648201526084016104a3565b9094909350915050565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109e25760405162461bcd60e51b81526004016104a390611c2a565b6000610a106109f936869003860160408701611d19565b805160009081526020918201519091526040902090565b90507fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5811415610a98576040805162461bcd60e51b8152602060048201526024810191909152600080516020611f6283398151915260448201527f4b65793a2063616e6e6f74207265676973746572207a65726f207075626b657960648201526084016104a3565b6001600160a01b03851660009081526001602052604090205415610b225760405162461bcd60e51b81526020600482015260476024820152600080516020611f6283398151915260448201527f4b65793a206f70657261746f7220616c72656164792072656769737465726564606482015266207075626b657960c81b608482015260a4016104a3565b6000818152600260205260409020546001600160a01b031615610ba65760405162461bcd60e51b81526020600482015260426024820152600080516020611f6283398151915260448201527f4b65793a207075626c6963206b657920616c7265616479207265676973746572606482015261195960f21b608482015260a4016104a3565b604080516000917f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000191610bff918835916020808b0135928b01359160608c01359160808d019160c08e01918d35918e8201359101611d4b565b6040516020818303038152906040528051906020012060001c610c229190611d96565b9050610cbc610c5b610c4683610c40368a90038a0160408b01611d19565b9061131b565b610c5536899003890189611d19565b906113b2565b610c63611446565b610ca5610c9685610c40604080518082018252600080825260209182015281518083019092526001825260029082015290565b610c55368a90038a018a611d19565b610cb7368a90038a0160808b01611e08565b611506565b610d575760405162461bcd60e51b815260206004820152606c6024820152600080516020611f6283398151915260448201527f4b65793a2065697468657220746865204731207369676e61747572652069732060648201527f77726f6e672c206f7220473120616e642047322070726976617465206b65792060848201526b0c8de40dcdee840dac2e8c6d60a31b60a482015260c4016104a3565b6001600160a01b03861660008181526003602090815260408083208982018035825560608b013560019283015590835281842087905586845260029092529182902080546001600160a01b0319168417905590517fe3fb6613af2e8930cf85d47fcf6db10192224a64c6cbe8023e0eee1ba382804191610ddb9160808a0190611e65565b60405180910390a250949350505050565b606060008367ffffffffffffffff811115610e0957610e09611953565b604051908082528060200260200182016040528015610e32578160200160208202803683370190505b50905060005b8481101561102e576000868683818110610e5457610e54611d03565b919091013560f81c600081815260046020526040902054909250905063ffffffff81161580610ebd575060ff821660009081526004602052604081208054909190610ea157610ea1611d03565b600091825260209091200154600160c01b900463ffffffff1686105b15610f4a5760405162461bcd60e51b815260206004820152605160248201527f424c5341706b52656769737472792e67657441706b496e64696365734174426c60448201527f6f636b4e756d6265723a20626c6f636b4e756d626572206973206265666f7265606482015270207468652066697273742075706461746560781b608482015260a4016104a3565b60005b8163ffffffff168163ffffffff1610156110185760ff8316600090815260046020526040902087906001610f818486611eaf565b610f8b9190611eaf565b63ffffffff1681548110610fa157610fa1611d03565b600091825260209091200154600160c01b900463ffffffff1611611006576001610fcb8284611eaf565b610fd59190611eaf565b858581518110610fe757610fe7611d03565b602002602001019063ffffffff16908163ffffffff1681525050611018565b8061101081611ed4565b915050610f4d565b505050808061102690611ef8565b915050610e38565b50949350505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461107f5760405162461bcd60e51b81526004016104a390611c2a565b600061108a836108cb565b50905061109f8261109a83611773565b6110d0565b7f14a5172b312e9d2c22b8468f9c70ec2caa9de934fe380734fbc6f3beff2b14ba8383604051610645929190611c9e565b604080518082019091526000808252602082015260005b835181101561131557600084828151811061110457611104611d03565b0160209081015160f81c60008181526004909252604090912054909150806111945760405162461bcd60e51b815260206004820152603d60248201527f424c5341706b52656769737472792e5f70726f6365737351756f72756d41706b60448201527f5570646174653a2071756f72756d20646f6573206e6f7420657869737400000060648201526084016104a3565b60ff821660009081526005602090815260409182902082518084019093528054835260010154908201526111c890866113b2565b60ff831660008181526005602090815260408083208551808255868401805160019384015590855251835281842094845260049092528220939750919290916112119085611f13565b8154811061122157611221611d03565b600091825260209091200180549091504363ffffffff908116600160c01b9092041614156112625780546001600160c01b031916604083901c1781556112fe565b805463ffffffff438116600160e01b8181026001600160e01b0394851617855560ff88166000908152600460209081526040808320815160608101835267ffffffffffffffff198b16815280840196875280830185815282546001810184559286529390942093519301805495519251871690940291909516600160c01b026001600160e01b0319949094169190941c17919091179092161790555b50505050808061130d90611ef8565b9150506110e7565b50505050565b6040805180820190915260008082526020820152611337611832565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa905080801561136a5761136c565bfe5b50806113aa5760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b60448201526064016104a3565b505092915050565b60408051808201909152600080825260208201526113ce611850565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa905080801561136a5750806113aa5760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b60448201526064016104a3565b61144e61186e565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b604080518082018252858152602080820185905282518084019093528583528201839052600091611535611893565b60005b60028110156116fa57600061154e826006611f2a565b905084826002811061156257611562611d03565b60200201515183611574836000611f49565b600c811061158457611584611d03565b602002015284826002811061159b5761159b611d03565b602002015160200151838260016115b29190611f49565b600c81106115c2576115c2611d03565b60200201528382600281106115d9576115d9611d03565b60200201515151836115ec836002611f49565b600c81106115fc576115fc611d03565b602002015283826002811061161357611613611d03565b602002015151600160200201518361162c836003611f49565b600c811061163c5761163c611d03565b602002015283826002811061165357611653611d03565b60200201516020015160006002811061166e5761166e611d03565b60200201518361167f836004611f49565b600c811061168f5761168f611d03565b60200201528382600281106116a6576116a6611d03565b6020020151602001516001600281106116c1576116c1611d03565b6020020151836116d2836005611f49565b600c81106116e2576116e2611d03565b602002015250806116f281611ef8565b915050611538565b506117036118b2565b60006020826101808560086107d05a03fa905080801561136a5750806117635760405162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b60448201526064016104a3565b5051151598975050505050505050565b6040805180820190915260008082526020820152815115801561179857506020820151155b156117b6575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516117fb9190611d96565b611825907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47611f13565b905292915050565b919050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b60405180604001604052806118816118d0565b815260200161188e6118d0565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b80356001600160a01b038116811461182d57600080fd5b60006020828403121561191757600080fd5b611920826118ee565b9392505050565b803560ff8116811461182d57600080fd5b60006020828403121561194a57600080fd5b61192082611927565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171561198c5761198c611953565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156119bb576119bb611953565b604052919050565b600080604083850312156119d657600080fd5b6119df836118ee565b915060208084013567ffffffffffffffff808211156119fd57600080fd5b818601915086601f830112611a1157600080fd5b813581811115611a2357611a23611953565b611a35601f8201601f19168501611992565b91508082528784828501011115611a4b57600080fd5b80848401858401376000848284010152508093505050509250929050565b600060208284031215611a7b57600080fd5b5035919050565b8151815260208083015190820152604081016106df565b60008060408385031215611aac57600080fd5b611ab583611927565b946020939093013593505050565b600080600060608486031215611ad857600080fd5b611ae184611927565b9250602084013563ffffffff81168114611afa57600080fd5b929592945050506040919091013590565b6000806000838503610160811215611b2257600080fd5b611b2b856118ee565b9350610100601f1982011215611b4057600080fd5b602085019250604061011f1982011215611b5957600080fd5b50610120840190509250925092565b600080600060408486031215611b7d57600080fd5b833567ffffffffffffffff80821115611b9557600080fd5b818601915086601f830112611ba957600080fd5b813581811115611bb857600080fd5b876020828501011115611bca57600080fd5b6020928301989097509590910135949350505050565b6020808252825182820181905260009190848201906040850190845b81811015611c1e57835163ffffffff1683529284019291840191600101611bfc565b50909695505050505050565b6020808252604e908201527f424c5341706b52656769737472792e6f6e6c795265676973747279436f6f726460408201527f696e61746f723a2063616c6c6572206973206e6f74207468652072656769737460608201526d393c9031b7b7b93234b730ba37b960911b608082015260a00190565b60018060a01b038316815260006020604081840152835180604085015260005b81811015611cda57858101830151858201606001528201611cbe565b81811115611cec576000606083870101525b50601f01601f191692909201606001949350505050565b634e487b7160e01b600052603260045260246000fd5b600060408284031215611d2b57600080fd5b611d33611969565b82358152602083013560208201528091505092915050565b8881528760208201528660408201528560608201526040856080830137600060c082016000815260408682375050610100810192909252610120820152610140019695505050505050565b600082611db357634e487b7160e01b600052601260045260246000fd5b500690565b600082601f830112611dc957600080fd5b611dd1611969565b806040840185811115611de357600080fd5b845b81811015611dfd578035845260209384019301611de5565b509095945050505050565b600060808284031215611e1a57600080fd5b6040516040810181811067ffffffffffffffff82111715611e3d57611e3d611953565b604052611e4a8484611db8565b8152611e598460408501611db8565b60208201529392505050565b823581526020808401359082015260c081016040838184013760808201600081526040808501823750600081529392505050565b634e487b7160e01b600052601160045260246000fd5b600063ffffffff83811690831681811015611ecc57611ecc611e99565b039392505050565b600063ffffffff80831681811415611eee57611eee611e99565b6001019392505050565b6000600019821415611f0c57611f0c611e99565b5060010190565b600082821015611f2557611f25611e99565b500390565b6000816000190483118215151615611f4457611f44611e99565b500290565b60008219821115611f5c57611f5c611e99565b50019056fe424c5341706b52656769737472792e7265676973746572424c535075626c6963a2646970667358221220d60912434f8da97fa12b719aaca1890878f8f5822bd4c255c1dee557b8e627ce64736f6c634300080c0033", - "sourceMap": "254:12566:23:-:0;;;739:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1455:51:24;;;;830:20:23;1606:22:24;:20;:22::i;:::-;1390:245;739:115:23;254:12566;;5388:279:69;5456:13;;;;;;;5455:14;5447:66;;;;-1:-1:-1;;;5447:66:69;;541:2:108;5447:66:69;;;523:21:108;580:2;560:18;;;553:30;619:34;599:18;;;592:62;-1:-1:-1;;;670:18:108;;;663:37;717:19;;5447:66:69;;;;;;;;5527:12;;5542:15;5527:12;;;:30;5523:138;;;5573:12;:30;;-1:-1:-1;;5573:30:69;5588:15;5573:30;;;;;;5622:28;;889:36:108;;;5622:28:69;;877:2:108;862:18;5622:28:69;;;;;;;5523:138;5388:279::o;14:320:108:-;114:6;167:2;155:9;146:7;142:23;138:32;135:52;;;183:1;180;173:12;135:52;209:16;;-1:-1:-1;;;;;254:31:108;;244:42;;234:70;;300:1;297;290:12;234:70;323:5;14:320;-1:-1:-1;;;14:320:108:o;747:184::-;254:12566:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", - "linkReferences": {} - }, - "deployedBytecode": { - "object": "0x608060405234801561001057600080fd5b50600436106101155760003560e01c80636d14a987116100a2578063bf79ce5811610071578063bf79ce58146103cc578063d5254a8c146103df578063de29fac0146103ff578063e8bb9ae61461041f578063f4e24fe51461044857600080fd5b80636d14a9871461030a5780637916cea6146103315780637ff81a8714610372578063a3db80e2146103a557600080fd5b80633fb27952116100e95780633fb27952146101df57806347b314e8146101f25780635f61a88414610233578063605747d51461028f57806368bccaac146102dd57600080fd5b8062a1f4cb1461011a57806313542a4e1461015b57806326d941f214610192578063377ed99d146101a7575b600080fd5b610141610128366004611905565b6003602052600090815260409020805460019091015482565b604080519283526020830191909152015b60405180910390f35b610184610169366004611905565b6001600160a01b031660009081526001602052604090205490565b604051908152602001610152565b6101a56101a0366004611938565b61045b565b005b6101ca6101b5366004611938565b60ff1660009081526004602052604090205490565b60405163ffffffff9091168152602001610152565b6101a56101ed3660046119c3565b6105b4565b61021b610200366004611a69565b6000908152600260205260409020546001600160a01b031690565b6040516001600160a01b039091168152602001610152565b610282610241366004611938565b60408051808201909152600080825260208201525060ff16600090815260056020908152604091829020825180840190935280548352600101549082015290565b6040516101529190611a82565b6102a261029d366004611a99565b610652565b60408051825167ffffffffffffffff1916815260208084015163ffffffff908116918301919091529282015190921690820152606001610152565b6102f06102eb366004611ac3565b6106e5565b60405167ffffffffffffffff199091168152602001610152565b61021b7f000000000000000000000000000000000000000000000000000000000000000081565b61034461033f366004611a99565b610880565b6040805167ffffffffffffffff19909416845263ffffffff9283166020850152911690820152606001610152565b610385610380366004611905565b6108cb565b604080518351815260209384015193810193909352820152606001610152565b6101416103b3366004611938565b6005602052600090815260409020805460019091015482565b6101846103da366004611b0b565b610998565b6103f26103ed366004611b68565b610dec565b6040516101529190611be0565b61018461040d366004611905565b60016020526000908152604090205481565b61021b61042d366004611a69565b6002602052600090815260409020546001600160a01b031681565b6101a56104563660046119c3565b611037565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104ac5760405162461bcd60e51b81526004016104a390611c2a565b60405180910390fd5b60ff81166000908152600460205260409020541561052b5760405162461bcd60e51b815260206004820152603660248201527f424c5341706b52656769737472792e696e697469616c697a6551756f72756d3a6044820152752071756f72756d20616c72656164792065786973747360501b60648201526084016104a3565b60ff166000908152600460209081526040808320815160608101835284815263ffffffff4381168286019081528285018781528454600181018655948852959096209151919092018054955194518316600160e01b026001600160e01b0395909316600160c01b026001600160e01b03199096169190931c179390931791909116919091179055565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105fc5760405162461bcd60e51b81526004016104a390611c2a565b6000610607836108cb565b50905061061482826110d0565b7f5358c5b42179178c8fc757734ac2a3198f9071c765ee0d8389211525f50052468383604051610645929190611c9e565b60405180910390a1505050565b604080516060810182526000808252602080830182905282840182905260ff86168252600490529190912080548390811061068f5761068f611d03565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b8204811694830194909452600160e01b90049092169082015290505b92915050565b60ff8316600090815260046020526040812080548291908490811061070c5761070c611d03565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b82048116948301859052600160e01b9091048116928201929092529250851610156107d35760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a20696e64657820746f6f20726563656e74000060648201526084016104a3565b604081015163ffffffff1615806107f95750806040015163ffffffff168463ffffffff16105b6108775760405162461bcd60e51b815260206004820152604360248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a206e6f74206c61746573742061706b2075706460648201526261746560e81b608482015260a4016104a3565b51949350505050565b6004602052816000526040600020818154811061089c57600080fd5b600091825260209091200154604081901b925063ffffffff600160c01b820481169250600160e01b9091041683565b60408051808201909152600080825260208201526001600160a01b03821660008181526003602090815260408083208151808301835281548152600191820154818501529484529091528120549091908061098e5760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e676574526567697374657265645075626b60448201527f65793a206f70657261746f72206973206e6f742072656769737465726564000060648201526084016104a3565b9094909350915050565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109e25760405162461bcd60e51b81526004016104a390611c2a565b6000610a106109f936869003860160408701611d19565b805160009081526020918201519091526040902090565b90507fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5811415610a98576040805162461bcd60e51b8152602060048201526024810191909152600080516020611f6283398151915260448201527f4b65793a2063616e6e6f74207265676973746572207a65726f207075626b657960648201526084016104a3565b6001600160a01b03851660009081526001602052604090205415610b225760405162461bcd60e51b81526020600482015260476024820152600080516020611f6283398151915260448201527f4b65793a206f70657261746f7220616c72656164792072656769737465726564606482015266207075626b657960c81b608482015260a4016104a3565b6000818152600260205260409020546001600160a01b031615610ba65760405162461bcd60e51b81526020600482015260426024820152600080516020611f6283398151915260448201527f4b65793a207075626c6963206b657920616c7265616479207265676973746572606482015261195960f21b608482015260a4016104a3565b604080516000917f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000191610bff918835916020808b0135928b01359160608c01359160808d019160c08e01918d35918e8201359101611d4b565b6040516020818303038152906040528051906020012060001c610c229190611d96565b9050610cbc610c5b610c4683610c40368a90038a0160408b01611d19565b9061131b565b610c5536899003890189611d19565b906113b2565b610c63611446565b610ca5610c9685610c40604080518082018252600080825260209182015281518083019092526001825260029082015290565b610c55368a90038a018a611d19565b610cb7368a90038a0160808b01611e08565b611506565b610d575760405162461bcd60e51b815260206004820152606c6024820152600080516020611f6283398151915260448201527f4b65793a2065697468657220746865204731207369676e61747572652069732060648201527f77726f6e672c206f7220473120616e642047322070726976617465206b65792060848201526b0c8de40dcdee840dac2e8c6d60a31b60a482015260c4016104a3565b6001600160a01b03861660008181526003602090815260408083208982018035825560608b013560019283015590835281842087905586845260029092529182902080546001600160a01b0319168417905590517fe3fb6613af2e8930cf85d47fcf6db10192224a64c6cbe8023e0eee1ba382804191610ddb9160808a0190611e65565b60405180910390a250949350505050565b606060008367ffffffffffffffff811115610e0957610e09611953565b604051908082528060200260200182016040528015610e32578160200160208202803683370190505b50905060005b8481101561102e576000868683818110610e5457610e54611d03565b919091013560f81c600081815260046020526040902054909250905063ffffffff81161580610ebd575060ff821660009081526004602052604081208054909190610ea157610ea1611d03565b600091825260209091200154600160c01b900463ffffffff1686105b15610f4a5760405162461bcd60e51b815260206004820152605160248201527f424c5341706b52656769737472792e67657441706b496e64696365734174426c60448201527f6f636b4e756d6265723a20626c6f636b4e756d626572206973206265666f7265606482015270207468652066697273742075706461746560781b608482015260a4016104a3565b60005b8163ffffffff168163ffffffff1610156110185760ff8316600090815260046020526040902087906001610f818486611eaf565b610f8b9190611eaf565b63ffffffff1681548110610fa157610fa1611d03565b600091825260209091200154600160c01b900463ffffffff1611611006576001610fcb8284611eaf565b610fd59190611eaf565b858581518110610fe757610fe7611d03565b602002602001019063ffffffff16908163ffffffff1681525050611018565b8061101081611ed4565b915050610f4d565b505050808061102690611ef8565b915050610e38565b50949350505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461107f5760405162461bcd60e51b81526004016104a390611c2a565b600061108a836108cb565b50905061109f8261109a83611773565b6110d0565b7f14a5172b312e9d2c22b8468f9c70ec2caa9de934fe380734fbc6f3beff2b14ba8383604051610645929190611c9e565b604080518082019091526000808252602082015260005b835181101561131557600084828151811061110457611104611d03565b0160209081015160f81c60008181526004909252604090912054909150806111945760405162461bcd60e51b815260206004820152603d60248201527f424c5341706b52656769737472792e5f70726f6365737351756f72756d41706b60448201527f5570646174653a2071756f72756d20646f6573206e6f7420657869737400000060648201526084016104a3565b60ff821660009081526005602090815260409182902082518084019093528054835260010154908201526111c890866113b2565b60ff831660008181526005602090815260408083208551808255868401805160019384015590855251835281842094845260049092528220939750919290916112119085611f13565b8154811061122157611221611d03565b600091825260209091200180549091504363ffffffff908116600160c01b9092041614156112625780546001600160c01b031916604083901c1781556112fe565b805463ffffffff438116600160e01b8181026001600160e01b0394851617855560ff88166000908152600460209081526040808320815160608101835267ffffffffffffffff198b16815280840196875280830185815282546001810184559286529390942093519301805495519251871690940291909516600160c01b026001600160e01b0319949094169190941c17919091179092161790555b50505050808061130d90611ef8565b9150506110e7565b50505050565b6040805180820190915260008082526020820152611337611832565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa905080801561136a5761136c565bfe5b50806113aa5760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b60448201526064016104a3565b505092915050565b60408051808201909152600080825260208201526113ce611850565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa905080801561136a5750806113aa5760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b60448201526064016104a3565b61144e61186e565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b604080518082018252858152602080820185905282518084019093528583528201839052600091611535611893565b60005b60028110156116fa57600061154e826006611f2a565b905084826002811061156257611562611d03565b60200201515183611574836000611f49565b600c811061158457611584611d03565b602002015284826002811061159b5761159b611d03565b602002015160200151838260016115b29190611f49565b600c81106115c2576115c2611d03565b60200201528382600281106115d9576115d9611d03565b60200201515151836115ec836002611f49565b600c81106115fc576115fc611d03565b602002015283826002811061161357611613611d03565b602002015151600160200201518361162c836003611f49565b600c811061163c5761163c611d03565b602002015283826002811061165357611653611d03565b60200201516020015160006002811061166e5761166e611d03565b60200201518361167f836004611f49565b600c811061168f5761168f611d03565b60200201528382600281106116a6576116a6611d03565b6020020151602001516001600281106116c1576116c1611d03565b6020020151836116d2836005611f49565b600c81106116e2576116e2611d03565b602002015250806116f281611ef8565b915050611538565b506117036118b2565b60006020826101808560086107d05a03fa905080801561136a5750806117635760405162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b60448201526064016104a3565b5051151598975050505050505050565b6040805180820190915260008082526020820152815115801561179857506020820151155b156117b6575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516117fb9190611d96565b611825907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47611f13565b905292915050565b919050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b60405180604001604052806118816118d0565b815260200161188e6118d0565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b80356001600160a01b038116811461182d57600080fd5b60006020828403121561191757600080fd5b611920826118ee565b9392505050565b803560ff8116811461182d57600080fd5b60006020828403121561194a57600080fd5b61192082611927565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171561198c5761198c611953565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156119bb576119bb611953565b604052919050565b600080604083850312156119d657600080fd5b6119df836118ee565b915060208084013567ffffffffffffffff808211156119fd57600080fd5b818601915086601f830112611a1157600080fd5b813581811115611a2357611a23611953565b611a35601f8201601f19168501611992565b91508082528784828501011115611a4b57600080fd5b80848401858401376000848284010152508093505050509250929050565b600060208284031215611a7b57600080fd5b5035919050565b8151815260208083015190820152604081016106df565b60008060408385031215611aac57600080fd5b611ab583611927565b946020939093013593505050565b600080600060608486031215611ad857600080fd5b611ae184611927565b9250602084013563ffffffff81168114611afa57600080fd5b929592945050506040919091013590565b6000806000838503610160811215611b2257600080fd5b611b2b856118ee565b9350610100601f1982011215611b4057600080fd5b602085019250604061011f1982011215611b5957600080fd5b50610120840190509250925092565b600080600060408486031215611b7d57600080fd5b833567ffffffffffffffff80821115611b9557600080fd5b818601915086601f830112611ba957600080fd5b813581811115611bb857600080fd5b876020828501011115611bca57600080fd5b6020928301989097509590910135949350505050565b6020808252825182820181905260009190848201906040850190845b81811015611c1e57835163ffffffff1683529284019291840191600101611bfc565b50909695505050505050565b6020808252604e908201527f424c5341706b52656769737472792e6f6e6c795265676973747279436f6f726460408201527f696e61746f723a2063616c6c6572206973206e6f74207468652072656769737460608201526d393c9031b7b7b93234b730ba37b960911b608082015260a00190565b60018060a01b038316815260006020604081840152835180604085015260005b81811015611cda57858101830151858201606001528201611cbe565b81811115611cec576000606083870101525b50601f01601f191692909201606001949350505050565b634e487b7160e01b600052603260045260246000fd5b600060408284031215611d2b57600080fd5b611d33611969565b82358152602083013560208201528091505092915050565b8881528760208201528660408201528560608201526040856080830137600060c082016000815260408682375050610100810192909252610120820152610140019695505050505050565b600082611db357634e487b7160e01b600052601260045260246000fd5b500690565b600082601f830112611dc957600080fd5b611dd1611969565b806040840185811115611de357600080fd5b845b81811015611dfd578035845260209384019301611de5565b509095945050505050565b600060808284031215611e1a57600080fd5b6040516040810181811067ffffffffffffffff82111715611e3d57611e3d611953565b604052611e4a8484611db8565b8152611e598460408501611db8565b60208201529392505050565b823581526020808401359082015260c081016040838184013760808201600081526040808501823750600081529392505050565b634e487b7160e01b600052601160045260246000fd5b600063ffffffff83811690831681811015611ecc57611ecc611e99565b039392505050565b600063ffffffff80831681811415611eee57611eee611e99565b6001019392505050565b6000600019821415611f0c57611f0c611e99565b5060010190565b600082821015611f2557611f25611e99565b500390565b6000816000190483118215151615611f4457611f44611e99565b500290565b60008219821115611f5c57611f5c611e99565b50019056fe424c5341706b52656769737472792e7265676973746572424c535075626c6963a2646970667358221220d60912434f8da97fa12b719aaca1890878f8f5822bd4c255c1dee557b8e627ce64736f6c634300080c0033", - "sourceMap": "254:12566:23:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1028:57:24;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;557:25:108;;;613:2;598:18;;591:34;;;;530:18;1028:57:24;;;;;;;;12693:125:23;;;;;;:::i;:::-;-1:-1:-1;;;;;12781:30:23;12755:7;12781:30;;;:20;:30;;;;;;;12693:125;;;;782:25:108;;;770:2;755:18;12693:125:23;636:177:108;3672:392:23;;;;;;:::i;:::-;;:::i;:::-;;12154:143;;;;;;:::i;:::-;12258:24;;12226:6;12258:24;;;:10;:24;;;;;:31;;12154:143;;;;1340:10:108;1328:23;;;1310:42;;1298:2;1283:18;12154:143:23;1166:192:108;1744:535:23;;;;;;:::i;:::-;;:::i;12375:141::-;;;;;;:::i;:::-;12451:7;12477:32;;;:20;:32;;;;;;-1:-1:-1;;;;;12477:32:23;;12375:141;;;;-1:-1:-1;;;;;3222:32:108;;;3204:51;;3192:2;3177:18;12375:141:23;3058:203:108;10270:129:23;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;;;;;;10368:24:23;;;;;;:10;:24;;;;;;;;;10361:31;;;;;;;;;;;;;;;;;;;;10270:129;;;;;;;;:::i;10513:160::-;;;;;;:::i;:::-;;:::i;:::-;;;;4151:13:108;;-1:-1:-1;;4147:43:108;4129:62;;4238:4;4226:17;;;4220:24;4263:10;4311:21;;;4289:20;;;4282:51;;;;4381:17;;;4375:24;4371:33;;;4349:20;;;4342:63;4117:2;4102:18;10513:160:23;3927:484:108;11140:927:23;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;4999:36:108;;;4981:55;;4969:2;4954:18;11140:927:23;4835:207:108;661:44:24;;;;;1209:47;;;;;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;5263:36:108;;;5245:55;;5319:10;5365:15;;;5360:2;5345:18;;5338:43;5417:15;;5397:18;;;5390:43;5233:2;5218:18;1209:47:24;5047:392:108;8527:423:23;;;;;;:::i;:::-;;:::i;:::-;;;;3339:12:108;;3327:25;;3401:4;3390:16;;;3384:23;3368:14;;;3361:47;;;;5730:18;;5723:34;5658:2;5643:18;8527:423:23;5444:319:108;1334:49:24;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;4482:1981:23;;;;;;:::i;:::-;;:::i;9154:1037::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;803:55:24:-;;;;;;:::i;:::-;;;;;;;;;;;;;;917;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;917:55:24;;;3046:476:23;;;;;;:::i;:::-;;:::i;3672:392::-;502:10;-1:-1:-1;;;;;524:19:23;502:42;;481:167;;;;-1:-1:-1;;;481:167:23;;;;;;;:::i;:::-;;;;;;;;;3775:24:::1;::::0;::::1;;::::0;;;:10:::1;:24;::::0;;;;:31;:36;3767:103:::1;;;::::0;-1:-1:-1;;;3767:103:23;;8284:2:108;3767:103:23::1;::::0;::::1;8266:21:108::0;8323:2;8303:18;;;8296:30;8362:34;8342:18;;;8335:62;-1:-1:-1;;;8413:18:108;;;8406:52;8475:19;;3767:103:23::1;8082:418:108::0;3767:103:23::1;3881:24;;;::::0;;;:10:::1;:24;::::0;;;;;;;3911:145;;::::1;::::0;::::1;::::0;;;;;::::1;3994:12;3911:145:::0;::::1;::::0;;::::1;::::0;;;;;;;;;3881:176;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;::::1;::::0;;;;;;;::::1;-1:-1:-1::0;;;3881:176:23::1;-1:-1:-1::0;;;;;3881:176:23;;;::::1;-1:-1:-1::0;;;3881:176:23::1;-1:-1:-1::0;;;;;;3881:176:23;;;;;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;3672:392::o;1744:535::-;502:10;-1:-1:-1;;;;;524:19:23;502:42;;481:167;;;;-1:-1:-1;;;481:167:23;;;;;;;:::i;:::-;1968:27:::1;2001:29;2021:8;2001:19;:29::i;:::-;1967:63;;;2090:46;2114:13;2129:6;2090:23;:46::i;:::-;2225:47;2248:8;2258:13;2225:47;;;;;;;:::i;:::-;;;;;;;;1877:402;1744:535:::0;;:::o;10513:160::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;10635:24:23;;;;;:10;:24;;;;;;:31;;10660:5;;10635:31;;;;;;:::i;:::-;;;;;;;;;;10628:38;;;;;;;;10635:31;;;;10628:38;-1:-1:-1;;10628:38:23;;;;;;;-1:-1:-1;;;10628:38:23;;;;;;;;;;;-1:-1:-1;;;10628:38:23;;;;;;;;;;-1:-1:-1;10513:160:23;;;;;:::o;11140:927::-;11343:24;;;11289:7;11343:24;;;:10;:24;;;;;:31;;11289:7;;11343:24;11368:5;;11343:31;;;;;;:::i;:::-;;;;;;;;;;11308:66;;;;;;;;11343:31;;;;11308:66;-1:-1:-1;;11308:66:23;;;;;;;-1:-1:-1;;;11308:66:23;;;;;;;;;;-1:-1:-1;;;11308:66:23;;;;;;;;;;;;;-1:-1:-1;11662:48:23;;;;11641:157;;;;-1:-1:-1;;;11641:157:23;;9536:2:108;11641:157:23;;;9518:21:108;9575:2;9555:18;;;9548:30;9614:34;9594:18;;;9587:62;9685:32;9665:18;;;9658:60;9735:19;;11641:157:23;9334:426:108;11641:157:23;11829:37;;;;:42;;;;:97;;;11889:15;:37;;;11875:51;;:11;:51;;;11829:97;11808:211;;;;-1:-1:-1;;;11808:211:23;;9967:2:108;11808:211:23;;;9949:21:108;10006:2;9986:18;;;9979:30;10045:34;10025:18;;;10018:62;10116:34;10096:18;;;10089:62;-1:-1:-1;;;10167:19:108;;;10160:34;10211:19;;11808:211:23;9765:471:108;11808:211:23;12037:23;;11140:927;-1:-1:-1;;;;11140:927:23:o;1209:47:24:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1209:47:24;-1:-1:-1;;;1209:47:24;;;;;-1:-1:-1;;;;1209:47:24;;;;;:::o;8527:423:23:-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;8666:26:23;;8617:7;8666:26;;;:16;:26;;;;;;;;8636:56;;;;;;;;;;;;;;;;;;;;8723:30;;;;;;;;;8617:7;;8636:56;8785:24;8764:133;;;;-1:-1:-1;;;8764:133:23;;10443:2:108;8764:133:23;;;10425:21:108;10482:2;10462:18;;;10455:30;10521:34;10501:18;;;10494:62;10592:32;10572:18;;;10565:60;10642:19;;8764:133:23;10241:426:108;8764:133:23;8924:6;;8932:10;;-1:-1:-1;8527:423:23;-1:-1:-1;;8527:423:23:o;4482:1981::-;4698:18;502:10;-1:-1:-1;;;;;524:19:23;502:42;;481:167;;;;-1:-1:-1;;;481:167:23;;;;;;;:::i;:::-;4728:18:::1;4749:34;;;::::0;;;;;4767:15:::1;::::0;::::1;4749:34;:::i;:::-;10532:9:42::0;;10471:16;10522:20;;;10578:4;10574:13;;;10568:20;10555:34;;;10627:4;10614:18;;;10402:246;4749:34:23::1;4728:55;;4828:12;4814:10;:26;;4793:125;;;::::0;;-1:-1:-1;;;4793:125:23;;11223:2:108;4793:125:23::1;::::0;::::1;11205:21:108::0;11242:18;;;11235:30;;;;-1:-1:-1;;;;;;;;;;;11281:18:108;;;11274:62;11372:34;11352:18;;;11345:62;11424:19;;4793:125:23::1;11021:428:108::0;4793:125:23::1;-1:-1:-1::0;;;;;4949:30:23;::::1;4991:1;4949:30:::0;;;:20:::1;:30;::::0;;;;;:44;4928:162:::1;;;::::0;-1:-1:-1;;;4928:162:23;;11656:2:108;4928:162:23::1;::::0;::::1;11638:21:108::0;11695:2;11675:18;;;11668:30;-1:-1:-1;;;;;;;;;;;11714:18:108;;;11707:62;11805:34;11785:18;;;11778:62;-1:-1:-1;;;11856:19:108;;;11849:38;11904:19;;4928:162:23::1;11454:475:108::0;4928:162:23::1;5165:1;5121:32:::0;;;:20:::1;:32;::::0;;;;;-1:-1:-1;;;;;5121:32:23::1;:46:::0;5100:159:::1;;;::::0;-1:-1:-1;;;5100:159:23;;12136:2:108;5100:159:23::1;::::0;::::1;12118:21:108::0;12175:2;12155:18;;;12148:30;-1:-1:-1;;;;;;;;;;;12194:18:108;;;12187:62;12285:34;12265:18;;;12258:62;-1:-1:-1;;;12336:19:108;;;12329:33;12379:19;;5100:159:23::1;11934:470:108::0;5100:159:23::1;5477:15;5345:347:::0;;5311:13:::1;::::0;2035:77:42::1;::::0;5345:347:23::1;::::0;5375:36;::::1;::::0;5426::::1;::::0;;::::1;;::::0;5477:15;::::1;:17;::::0;5509;;;::::1;::::0;5541:15:::1;::::0;::::1;::::0;5573:17;;;;5605:31;::::1;::::0;5651;;::::1;;::::0;5345:347:::1;;:::i;:::-;;;;;;;;;;;;;5335:358;;;;;;5327:367;;:386;;;;:::i;:::-;5311:402:::0;-1:-1:-1;5811:263:23::1;5838:74;5878:33;5311:402:::0;5878:26:::1;;::::0;;;;;:15:::1;::::0;::::1;:26;:::i;:::-;::::0;::::1;:33::i;:::-;5838:39;;::::0;;::::1;::::0;::::1;:6:::0;:39:::1;:::i;:::-;::::0;::::1;:74::i;:::-;5926:22;:20;:22::i;:::-;5962:73;5997:37;6028:5;5997:19;-1:-1:-1::0;;;;;;;;;;;;;;;;;2390:13:42;;;;;;;;2398:1;2390:13;;2401:1;2390:13;;;;;2311:99;5997:37:23::1;5962:34;;::::0;;::::1;::::0;::::1;:29:::0;:34:::1;:::i;:73::-;5811:263;;::::0;;;;;6049:15:::1;::::0;::::1;5811:263;:::i;:::-;:13;:263::i;:::-;5803:384;;;::::0;-1:-1:-1;;;5803:384:23;;14726:2:108;5803:384:23::1;::::0;::::1;14708:21:108::0;14765:3;14745:18;;;14738:31;-1:-1:-1;;;;;;;;;;;14785:18:108;;;14778:62;14876:34;14856:18;;;14849:62;14948:34;14927:19;;;14920:63;-1:-1:-1;;;14999:19:108;;;14992:43;15052:19;;5803:384:23::1;14524:553:108::0;5803:384:23::1;-1:-1:-1::0;;;;;6198:26:23;::::1;;::::0;;;:16:::1;:26;::::0;;;6227:15:::1;6198:26:::0;;;6227:15;;::::1;15234:19:108::0;;15221:33;;15297:14;;;15284:28;15280:1;15270:12;;;15263:50;6252:30:23;;;;;;:43;;;6305:32;;;:20:::1;:32:::0;;;;;;;:43;;-1:-1:-1;;;;;;6305:43:23::1;::::0;::::1;::::0;;6364:65;;::::1;::::0;::::1;::::0;6413:15:::1;::::0;::::1;::::0;6364:65:::1;:::i;:::-;;;;;;;;-1:-1:-1::0;6446:10:23;4482:1981;-1:-1:-1;;;;4482:1981:23:o;9154:1037::-;9286:15;9313:23;9352:13;9339:34;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9339:34:23;;9313:60;;9388:6;9383:778;9400:24;;;9383:778;;;9445:18;9472:13;;9486:1;9472:16;;;;;;;:::i;:::-;;;;;;;;9503:29;9542:24;;;:10;:24;;;;;:31;9472:16;;-1:-1:-1;9542:31:23;-1:-1:-1;9593:27:23;;;;;:90;;-1:-1:-1;9638:24:23;;;;;;;:10;:24;;;;;:27;;:24;;;:27;;;;:::i;:::-;;;;;;;;;;:45;-1:-1:-1;;;9638:45:23;;;;9624:59;;9593:90;9589:258;;;9703:129;;-1:-1:-1;;;9703:129:23;;16112:2:108;9703:129:23;;;16094:21:108;16151:2;16131:18;;;16124:30;16190:34;16170:18;;;16163:62;16261:34;16241:18;;;16234:62;-1:-1:-1;;;16312:19:108;;;16305:48;16370:19;;9703:129:23;15910:485:108;9589:258:23;9866:8;9861:290;9884:22;9880:26;;:1;:26;;;9861:290;;;9935:24;;;;;;;:10;:24;;;;;10013:11;;9989:1;9960:26;9985:1;9960:22;:26;:::i;:::-;:30;;;;:::i;:::-;9935:56;;;;;;;;;;:::i;:::-;;;;;;;;;;:74;-1:-1:-1;;;9935:74:23;;;;:89;9931:206;;10090:1;10061:26;10086:1;10061:22;:26;:::i;:::-;:30;;;;:::i;:::-;10048:7;10056:1;10048:10;;;;;;;;:::i;:::-;;;;;;:43;;;;;;;;;;;10113:5;;9931:206;9908:3;;;;:::i;:::-;;;;9861:290;;;;9431:730;;9426:3;;;;;:::i;:::-;;;;9383:778;;;-1:-1:-1;10177:7:23;9154:1037;-1:-1:-1;;;;9154:1037:23:o;3046:476::-;502:10;-1:-1:-1;;;;;524:19:23;502:42;;481:167;;;;-1:-1:-1;;;481:167:23;;;;;;;:::i;:::-;3272:27:::1;3305:29;3325:8;3305:19;:29::i;:::-;3271:63;;;3394:55;3418:13;3433:15;:6;:13;:15::i;:::-;3394:23;:55::i;:::-;3464:51;3491:8;3501:13;3464:51;;;;;;;:::i;6687:1470::-:0;-1:-1:-1;;;;;;;;;;;;;;;;;6838:9:23;6833:1318;6857:13;:20;6853:1;:24;6833:1318;;;6959:18;6986:13;7000:1;6986:16;;;;;;;;:::i;:::-;;;;;;;;;7017:21;7041:24;;;:10;:24;;;;;;;:31;6986:16;;-1:-1:-1;7094:18:23;7086:92;;;;-1:-1:-1;;;7086:92:23;;17306:2:108;7086:92:23;;;17288:21:108;17345:2;17325:18;;;17318:30;17384:34;17364:18;;;17357:62;17455:31;17435:18;;;17428:59;17504:19;;7086:92:23;17104:425:108;7086:92:23;7261:24;;;;;;;:10;:24;;;;;;;;;:29;;;;;;;;;;;;;;;;;;;:36;;7291:5;7261:29;:36::i;:::-;7311:24;;;;;;;:10;:24;;;;;;;;:33;;;;;;;;;;;;;;;10522:20:42;;;10568;10555:34;;10614:18;;;7642:24:23;;;:10;:24;;;;;7311:33;;-1:-1:-1;10614:18:42;;7311:24:23;;7667:17;;:13;:17;:::i;:::-;7642:43;;;;;;;;:::i;:::-;;;;;;;;;;7703:28;;7642:43;;-1:-1:-1;7742:12:23;7703:52;;;;-1:-1:-1;;;7703:28:23;;;;:52;7699:442;;;7775:31;;-1:-1:-1;;;;;;7775:31:23;;;;;;;;7699:442;;;7845:55;;;7887:12;7845:55;;-1:-1:-1;;;7845:55:23;;;-1:-1:-1;;;;;7845:55:23;;;;;;7918:24;;;7845:32;7918:24;;;:10;:24;;;;;;;;7948:177;;;;;;;-1:-1:-1;;7948:177:23;;;;;;;;;;;;;;;;7918:208;;-1:-1:-1;7918:208:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7918:208:23;-1:-1:-1;;;;;;7918:208:23;;;;;;;;;;;;;;;;;;;7699:442;6884:1267;;;;6879:3;;;;;:::i;:::-;;;;6833:1318;;;;6785:1372;6687:1470;;:::o;7082:580:42:-;-1:-1:-1;;;;;;;;;;;;;;;;;7182:23:42;;:::i;:::-;7226:3;;7215:14;;:8;7250:3;;;;7239:8;;;:14;7263:8;;;;:12;;;-1:-1:-1;;7450:1:42;7444:4;7215:14;7434:1;7427:4;7420:5;7416:16;7405:53;7394:64;-1:-1:-1;7394:64:42;7555:48;;;;7528:75;;7555:48;7580:9;7528:75;;7630:7;7622:33;;;;-1:-1:-1;;;7622:33:42;;17866:2:108;7622:33:42;;;17848:21:108;17905:2;17885:18;;;17878:30;-1:-1:-1;;;17924:18:108;;;17917:43;17977:18;;7622:33:42;17664:337:108;7622:33:42;7172:490;;7082:580;;;;:::o;4821:615::-;-1:-1:-1;;;;;;;;;;;;;;;;;4924:23:42;;:::i;:::-;4968:4;;4957:15;;:8;4993:4;;;;4982:8;;;:15;5018:4;;5007:8;;;;:15;;;;5043:4;;;;5032:8;;;:15;-1:-1:-1;;5223:1:42;5217:4;4957:15;5207:1;5200:4;5193:5;5189:16;5178:53;5167:64;-1:-1:-1;5167:64:42;5328:48;;;;5301:75;5404:7;5396:33;;;;-1:-1:-1;;;5396:33:42;;18208:2:108;5396:33:42;;;18190:21:108;18247:2;18227:18;;;18220:30;-1:-1:-1;;;18266:18:108;;;18259:43;18319:18;;5396:33:42;18006:337:108;4068:128:42;4117:14;;:::i;:::-;-1:-1:-1;4150:39:42;;;;;;;;3633:77;4150:39;;;;;;3750:77;4150:39;;;;;;;;;;;;;;3867:77;4150:39;;3984:77;4150:39;;;;;;;;;;;;;;;4068:128::o;7912:1058::-;8082:31;;;;;;;;;;;;;;;;;;8123;;;;;;;;;;;;;;;;8066:4;;8165:24;;:::i;:::-;8205:9;8200:302;8224:1;8220;:5;8200:302;;;8246:9;8258:5;:1;8262;8258:5;:::i;:::-;8246:17;;8292:2;8295:1;8292:5;;;;;;;:::i;:::-;;;;;:7;8277:5;8283;:1;8292:7;8283:5;:::i;:::-;8277:12;;;;;;;:::i;:::-;;;;:22;8328:2;8331:1;8328:5;;;;;;;:::i;:::-;;;;;:7;;;8313:5;8319:1;8323;8319:5;;;;:::i;:::-;8313:12;;;;;;;:::i;:::-;;;;:22;8364:2;8367:1;8364:5;;;;;;;:::i;:::-;;;;;:7;:10;8349:5;8355;:1;8359;8355:5;:::i;:::-;8349:12;;;;;;;:::i;:::-;;;;:25;8403:2;8406:1;8403:5;;;;;;;:::i;:::-;;;;;:7;8411:1;8403:10;;;;8388:5;8394;:1;8398;8394:5;:::i;:::-;8388:12;;;;;;;:::i;:::-;;;;:25;8442:2;8445:1;8442:5;;;;;;;:::i;:::-;;;;;:7;;;8450:1;8442:10;;;;;;;:::i;:::-;;;;;8427:5;8433;:1;8437;8433:5;:::i;:::-;8427:12;;;;;;;:::i;:::-;;;;:25;8481:2;8484:1;8481:5;;;;;;;:::i;:::-;;;;;:7;;;8489:1;8481:10;;;;;;;:::i;:::-;;;;;8466:5;8472;:1;8476;8472:5;:::i;:::-;8466:12;;;;;;;:::i;:::-;;;;:25;-1:-1:-1;8227:3:42;;;;:::i;:::-;;;;8200:302;;;;8512:21;;:::i;:::-;8543:12;8723:4;8718:3;8703:13;8696:5;8693:1;8686:4;8679:5;8675:16;8664:64;8653:75;-1:-1:-1;8653:75:42;8825:48;;;;8798:75;8901:7;8893:41;;;;-1:-1:-1;;;8893:41:42;;18856:2:108;8893:41:42;;;18838:21:108;18895:2;18875:18;;;18868:30;-1:-1:-1;;;18914:18:108;;;18907:51;18975:18;;8893:41:42;18654:345:108;8893:41:42;-1:-1:-1;8952:6:42;:11;;;;-1:-1:-1;;;;;;;;7912:1058:42:o;4459:295::-;-1:-1:-1;;;;;;;;;;;;;;;;;4598:3:42;;:8;:20;;;;-1:-1:-1;4610:3:42;;;;:8;4598:20;4594:154;;;-1:-1:-1;;4641:13:42;;;;;;;;;-1:-1:-1;4641:13:42;;;;;;;;4459:295::o;4594:154::-;4692:45;;;;;;;;4700:1;:3;;;4692:45;;;;1839:77;4719:1;:3;;;:16;;;;:::i;:::-;4705:31;;1839:77;4705:31;:::i;:::-;4692:45;;4685:52;4459:295;-1:-1:-1;;4459:295:42:o;4594:154::-;4459:295;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:173:108:-;82:20;;-1:-1:-1;;;;;131:31:108;;121:42;;111:70;;177:1;174;167:12;192:186;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;:::-;333:39;192:186;-1:-1:-1;;;192:186:108:o;818:156::-;884:20;;944:4;933:16;;923:27;;913:55;;964:1;961;954:12;979:182;1036:6;1089:2;1077:9;1068:7;1064:23;1060:32;1057:52;;;1105:1;1102;1095:12;1057:52;1128:27;1145:9;1128:27;:::i;1363:127::-;1424:10;1419:3;1415:20;1412:1;1405:31;1455:4;1452:1;1445:15;1479:4;1476:1;1469:15;1495:251;1567:2;1561:9;;;1597:15;;1642:18;1627:34;;1663:22;;;1624:62;1621:88;;;1689:18;;:::i;:::-;1725:2;1718:22;1495:251;:::o;1751:275::-;1822:2;1816:9;1887:2;1868:13;;-1:-1:-1;;1864:27:108;1852:40;;1922:18;1907:34;;1943:22;;;1904:62;1901:88;;;1969:18;;:::i;:::-;2005:2;1998:22;1751:275;;-1:-1:-1;1751:275:108:o;2031:837::-;2108:6;2116;2169:2;2157:9;2148:7;2144:23;2140:32;2137:52;;;2185:1;2182;2175:12;2137:52;2208:29;2227:9;2208:29;:::i;:::-;2198:39;;2256:2;2309;2298:9;2294:18;2281:32;2332:18;2373:2;2365:6;2362:14;2359:34;;;2389:1;2386;2379:12;2359:34;2427:6;2416:9;2412:22;2402:32;;2472:7;2465:4;2461:2;2457:13;2453:27;2443:55;;2494:1;2491;2484:12;2443:55;2530:2;2517:16;2552:2;2548;2545:10;2542:36;;;2558:18;;:::i;:::-;2600:53;2643:2;2624:13;;-1:-1:-1;;2620:27:108;2616:36;;2600:53;:::i;:::-;2587:66;;2676:2;2669:5;2662:17;2716:7;2711:2;2706;2702;2698:11;2694:20;2691:33;2688:53;;;2737:1;2734;2727:12;2688:53;2792:2;2787;2783;2779:11;2774:2;2767:5;2763:14;2750:45;2836:1;2831:2;2826;2819:5;2815:14;2811:23;2804:34;;2857:5;2847:15;;;;;2031:837;;;;;:::o;2873:180::-;2932:6;2985:2;2973:9;2964:7;2960:23;2956:32;2953:52;;;3001:1;2998;2991:12;2953:52;-1:-1:-1;3024:23:108;;2873:180;-1:-1:-1;2873:180:108:o;3419:248::-;3339:12;;3327:25;;3401:4;3390:16;;;3384:23;3368:14;;;3361:47;3605:2;3590:18;;3617:44;3266:148;3672:250;3738:6;3746;3799:2;3787:9;3778:7;3774:23;3770:32;3767:52;;;3815:1;3812;3805:12;3767:52;3838:27;3855:9;3838:27;:::i;:::-;3828:37;3912:2;3897:18;;;;3884:32;;-1:-1:-1;;;3672:250:108:o;4416:414::-;4490:6;4498;4506;4559:2;4547:9;4538:7;4534:23;4530:32;4527:52;;;4575:1;4572;4565:12;4527:52;4598:27;4615:9;4598:27;:::i;:::-;4588:37;;4675:2;4664:9;4660:18;4647:32;4719:10;4712:5;4708:22;4701:5;4698:33;4688:61;;4745:1;4742;4735:12;4688:61;4416:414;;4768:5;;-1:-1:-1;;;4820:2:108;4805:18;;;;4792:32;;4416:414::o;5768:500::-;5918:6;5926;5934;5978:9;5969:7;5965:23;6008:3;6004:2;6000:12;5997:32;;;6025:1;6022;6015:12;5997:32;6048:29;6067:9;6048:29;:::i;:::-;6038:39;-1:-1:-1;6111:3:108;-1:-1:-1;;6093:16:108;;6089:26;6086:46;;;6128:1;6125;6118:12;6086:46;6166:2;6151:18;;;-1:-1:-1;6204:2:108;-1:-1:-1;;6185:17:108;;6181:26;6178:46;;;6220:1;6217;6210:12;6178:46;;6258:3;6247:9;6243:19;6233:29;;5768:500;;;;;:::o;6273:665::-;6352:6;6360;6368;6421:2;6409:9;6400:7;6396:23;6392:32;6389:52;;;6437:1;6434;6427:12;6389:52;6477:9;6464:23;6506:18;6547:2;6539:6;6536:14;6533:34;;;6563:1;6560;6553:12;6533:34;6601:6;6590:9;6586:22;6576:32;;6646:7;6639:4;6635:2;6631:13;6627:27;6617:55;;6668:1;6665;6658:12;6617:55;6708:2;6695:16;6734:2;6726:6;6723:14;6720:34;;;6750:1;6747;6740:12;6720:34;6797:7;6790:4;6781:6;6777:2;6773:15;6769:26;6766:39;6763:59;;;6818:1;6815;6808:12;6763:59;6849:4;6841:13;;;;6873:6;;-1:-1:-1;6911:20:108;;;;6898:34;;6273:665;-1:-1:-1;;;;6273:665:108:o;6943:647::-;7112:2;7164:21;;;7234:13;;7137:18;;;7256:22;;;7083:4;;7112:2;7335:15;;;;7309:2;7294:18;;;7083:4;7378:186;7392:6;7389:1;7386:13;7378:186;;;7457:13;;7472:10;7453:30;7441:43;;7539:15;;;;7504:12;;;;7414:1;7407:9;7378:186;;;-1:-1:-1;7581:3:108;;6943:647;-1:-1:-1;;;;;;6943:647:108:o;7595:482::-;7797:2;7779:21;;;7836:2;7816:18;;;7809:30;7875:34;7870:2;7855:18;;7848:62;7946:34;7941:2;7926:18;;7919:62;-1:-1:-1;;;8012:3:108;7997:19;;7990:45;8067:3;8052:19;;7595:482::o;8505:692::-;8709:1;8705;8700:3;8696:11;8692:19;8684:6;8680:32;8669:9;8662:51;8643:4;8732:2;8770;8765;8754:9;8750:18;8743:30;8802:6;8796:13;8845:6;8840:2;8829:9;8825:18;8818:34;8870:1;8880:140;8894:6;8891:1;8888:13;8880:140;;;8989:14;;;8985:23;;8979:30;8955:17;;;8974:2;8951:26;8944:66;8909:10;;8880:140;;;9038:6;9035:1;9032:13;9029:91;;;9108:1;9103:2;9094:6;9083:9;9079:22;9075:31;9068:42;9029:91;-1:-1:-1;9181:2:108;9160:15;-1:-1:-1;;9156:29:108;9141:45;;;;9188:2;9137:54;;8505:692;-1:-1:-1;;;;8505:692:108:o;9202:127::-;9263:10;9258:3;9254:20;9251:1;9244:31;9294:4;9291:1;9284:15;9318:4;9315:1;9308:15;10672:344;10757:6;10810:2;10798:9;10789:7;10785:23;10781:32;10778:52;;;10826:1;10823;10816:12;10778:52;10852:22;;:::i;:::-;10910:9;10897:23;10890:5;10883:38;10981:2;10970:9;10966:18;10953:32;10948:2;10941:5;10937:14;10930:56;11005:5;10995:15;;;10672:344;;;;:::o;12409:844::-;12842:6;12837:3;12830:19;12879:6;12874:2;12869:3;12865:12;12858:28;12916:6;12911:2;12906:3;12902:12;12895:28;12953:6;12948:2;12943:3;12939:12;12932:28;13005:2;12997:6;12991:3;12986;12982:13;12969:39;12812:3;13036;13031;13027:13;13060:1;13056:2;13049:13;13096:2;13088:6;13084:2;13071:28;-1:-1:-1;;13127:3:108;13118:13;;13162:18;;;;13205:3;13196:13;;13189:29;13243:3;13234:13;;12409:844;-1:-1:-1;;;;;;12409:844:108:o;13258:209::-;13290:1;13316;13306:132;;13360:10;13355:3;13351:20;13348:1;13341:31;13395:4;13392:1;13385:15;13423:4;13420:1;13413:15;13306:132;-1:-1:-1;13452:9:108;;13258:209::o;13472:484::-;13522:5;13575:3;13568:4;13560:6;13556:17;13552:27;13542:55;;13593:1;13590;13583:12;13542:55;13617:22;;:::i;:::-;13661:3;13699:2;13691:6;13687:15;13725:3;13717:6;13714:15;13711:35;;;13742:1;13739;13732:12;13711:35;13766:6;13781:146;13797:6;13792:3;13789:15;13781:146;;;13865:17;;13853:30;;13912:4;13903:14;;;;13814;13781:146;;;-1:-1:-1;13945:5:108;;13472:484;-1:-1:-1;;;;;13472:484:108:o;13961:558::-;14046:6;14099:3;14087:9;14078:7;14074:23;14070:33;14067:53;;;14116:1;14113;14106:12;14067:53;14149:4;14143:11;14193:4;14185:6;14181:17;14264:6;14252:10;14249:22;14228:18;14216:10;14213:34;14210:62;14207:88;;;14275:18;;:::i;:::-;14311:4;14304:24;14352:44;14388:7;14377:9;14352:44;:::i;:::-;14344:6;14337:60;14432:55;14479:7;14472:4;14461:9;14457:20;14432:55;:::i;:::-;14425:4;14413:17;;14406:82;14417:6;13961:558;-1:-1:-1;;;13961:558:108:o;15324:581::-;15625:20;;15607:39;;15709:4;15697:17;;;15684:31;15662:20;;;15655:61;15594:3;15579:19;;15766:2;15758:6;15738:18;;;15725:44;15803:3;15792:9;15788:19;15827:1;15823:2;15816:13;15872:2;15867;15859:6;15855:15;15851:2;15838:37;;15897:1;15891:4;15884:15;15324:581;;;;;:::o;16400:127::-;16461:10;16456:3;16452:20;16449:1;16442:31;16492:4;16489:1;16482:15;16516:4;16513:1;16506:15;16532:221;16571:4;16600:10;16660;;;;16630;;16682:12;;;16679:38;;;16697:18;;:::i;:::-;16734:13;;16532:221;-1:-1:-1;;;16532:221:108:o;16758:201::-;16796:3;16824:10;16869:2;16862:5;16858:14;16896:2;16887:7;16884:15;16881:41;;;16902:18;;:::i;:::-;16951:1;16938:15;;16758:201;-1:-1:-1;;;16758:201:108:o;16964:135::-;17003:3;-1:-1:-1;;17024:17:108;;17021:43;;;17044:18;;:::i;:::-;-1:-1:-1;17091:1:108;17080:13;;16964:135::o;17534:125::-;17574:4;17602:1;17599;17596:8;17593:34;;;17607:18;;:::i;:::-;-1:-1:-1;17644:9:108;;17534:125::o;18348:168::-;18388:7;18454:1;18450;18446:6;18442:14;18439:1;18436:21;18431:1;18424:9;18417:17;18413:45;18410:71;;;18461:18;;:::i;:::-;-1:-1:-1;18501:9:108;;18348:168::o;18521:128::-;18561:3;18592:1;18588:6;18585:1;18582:13;18579:39;;;18598:18;;:::i;:::-;-1:-1:-1;18634:9:108;;18521:128::o", - "linkReferences": {}, - "immutableReferences": { - "5620": [ - { - "start": 783, - "length": 32 - }, - { - "start": 1126, - "length": 32 - }, - { - "start": 1471, - "length": 32 - }, - { - "start": 2469, - "length": 32 - }, - { - "start": 4162, - "length": 32 - } - ] - } - }, - "methodIdentifiers": { - "apkHistory(uint8,uint256)": "7916cea6", - "currentApk(uint8)": "a3db80e2", - "deregisterOperator(address,bytes)": "f4e24fe5", - "getApk(uint8)": "5f61a884", - "getApkHashAtBlockNumberAndIndex(uint8,uint32,uint256)": "68bccaac", - "getApkHistoryLength(uint8)": "377ed99d", - "getApkIndicesAtBlockNumber(bytes,uint256)": "d5254a8c", - "getApkUpdateAtIndex(uint8,uint256)": "605747d5", - "getOperatorFromPubkeyHash(bytes32)": "47b314e8", - "getOperatorId(address)": "13542a4e", - "getRegisteredPubkey(address)": "7ff81a87", - "initializeQuorum(uint8)": "26d941f2", - "operatorToPubkey(address)": "00a1f4cb", - "operatorToPubkeyHash(address)": "de29fac0", - "pubkeyHashToOperator(bytes32)": "e8bb9ae6", - "registerBLSPublicKey(address,((uint256,uint256),(uint256,uint256),(uint256[2],uint256[2])),(uint256,uint256))": "bf79ce58", - "registerOperator(address,bytes)": "3fb27952", - "registryCoordinator()": "6d14a987" +[ + { + "type": "constructor", + "inputs": [ + { + "name": "_registryCoordinator", + "type": "address", + "internalType": "contract IRegistryCoordinator" + } + ], + "stateMutability": "nonpayable" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.12+commit.f00d7308\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IRegistryCoordinator\",\"name\":\"_registryCoordinator\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct BN254.G1Point\",\"name\":\"pubkeyG1\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256[2]\",\"name\":\"X\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[2]\",\"name\":\"Y\",\"type\":\"uint256[2]\"}],\"indexed\":false,\"internalType\":\"struct BN254.G2Point\",\"name\":\"pubkeyG2\",\"type\":\"tuple\"}],\"name\":\"NewPubkeyRegistration\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"}],\"name\":\"OperatorAddedToQuorums\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"}],\"name\":\"OperatorRemovedFromQuorums\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"apkHistory\",\"outputs\":[{\"internalType\":\"bytes24\",\"name\":\"apkHash\",\"type\":\"bytes24\"},{\"internalType\":\"uint32\",\"name\":\"updateBlockNumber\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"nextUpdateBlockNumber\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"name\":\"currentApk\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"}],\"name\":\"deregisterOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"}],\"name\":\"getApk\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"blockNumber\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getApkHashAtBlockNumberAndIndex\",\"outputs\":[{\"internalType\":\"bytes24\",\"name\":\"\",\"type\":\"bytes24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"}],\"name\":\"getApkHistoryLength\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getApkIndicesAtBlockNumber\",\"outputs\":[{\"internalType\":\"uint32[]\",\"name\":\"\",\"type\":\"uint32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getApkUpdateAtIndex\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes24\",\"name\":\"apkHash\",\"type\":\"bytes24\"},{\"internalType\":\"uint32\",\"name\":\"updateBlockNumber\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"nextUpdateBlockNumber\",\"type\":\"uint32\"}],\"internalType\":\"struct IBLSApkRegistry.ApkUpdate\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"pubkeyHash\",\"type\":\"bytes32\"}],\"name\":\"getOperatorFromPubkeyHash\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getRegisteredPubkey\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"}],\"name\":\"initializeQuorum\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"operatorToPubkey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"operatorToPubkeyHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"pubkeyHashToOperator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point\",\"name\":\"pubkeyRegistrationSignature\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point\",\"name\":\"pubkeyG1\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256[2]\",\"name\":\"X\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[2]\",\"name\":\"Y\",\"type\":\"uint256[2]\"}],\"internalType\":\"struct BN254.G2Point\",\"name\":\"pubkeyG2\",\"type\":\"tuple\"}],\"internalType\":\"struct IBLSApkRegistry.PubkeyRegistrationParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point\",\"name\":\"pubkeyRegistrationMessageHash\",\"type\":\"tuple\"}],\"name\":\"registerBLSPublicKey\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"}],\"name\":\"registerOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registryCoordinator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"deregisterOperator(address,bytes)\":{\"details\":\"access restricted to the RegistryCoordinatorPreconditions (these are assumed, not validated in this contract): 1) `quorumNumbers` has no duplicates 2) `quorumNumbers.length` != 0 3) `quorumNumbers` is ordered in ascending order 4) the operator is not already deregistered 5) `quorumNumbers` is a subset of the quorumNumbers that the operator is registered for\",\"params\":{\"operator\":\"The address of the operator to deregister.\",\"quorumNumbers\":\"The quorum numbers the operator is deregistering from, where each byte is an 8 bit integer quorumNumber.\"}},\"getApkHashAtBlockNumberAndIndex(uint8,uint32,uint256)\":{\"params\":{\"blockNumber\":\"is the number of the block for which the latest ApkHash will be retrieved\",\"index\":\"is the index of the apkUpdate being retrieved from the list of quorum apkUpdates in storage\",\"quorumNumber\":\"is the quorum whose ApkHash is being retrieved\"}},\"getApkIndicesAtBlockNumber(bytes,uint256)\":{\"details\":\"Returns the current indices if `blockNumber >= block.number`\"},\"getOperatorId(address)\":{\"details\":\"Returns zero in the event that the `operator` has never registered for the AVS\"},\"getRegisteredPubkey(address)\":{\"details\":\"Reverts if the operator has not registered a valid pubkey\"},\"initializeQuorum(uint8)\":{\"params\":{\"quorumNumber\":\"The number of the new quorum\"}},\"registerBLSPublicKey(address,((uint256,uint256),(uint256,uint256),(uint256[2],uint256[2])),(uint256,uint256))\":{\"params\":{\"operator\":\"is the operator for whom the key is being registered\",\"params\":\"contains the G1 & G2 public keys of the operator, and a signature proving their ownership\",\"pubkeyRegistrationMessageHash\":\"is a hash that the operator must sign to prove key ownership\"}},\"registerOperator(address,bytes)\":{\"details\":\"access restricted to the RegistryCoordinatorPreconditions (these are assumed, not validated in this contract): 1) `quorumNumbers` has no duplicates 2) `quorumNumbers.length` != 0 3) `quorumNumbers` is ordered in ascending order 4) the operator is not already registered\",\"params\":{\"operator\":\"The address of the operator to register.\",\"quorumNumbers\":\"The quorum numbers the operator is registering for, where each byte is an 8 bit integer quorumNumber.\"}}},\"version\":1},\"userdoc\":{\"events\":{\"NewPubkeyRegistration(address,(uint256,uint256),(uint256[2],uint256[2]))\":{\"notice\":\"Emitted when `operator` registers with the public keys `pubkeyG1` and `pubkeyG2`.\"}},\"kind\":\"user\",\"methods\":{\"apkHistory(uint8,uint256)\":{\"notice\":\"maps quorumNumber => historical aggregate pubkey updates\"},\"constructor\":{\"notice\":\"Sets the (immutable) `registryCoordinator` address\"},\"currentApk(uint8)\":{\"notice\":\"maps quorumNumber => current aggregate pubkey of quorum\"},\"deregisterOperator(address,bytes)\":{\"notice\":\"Deregisters the `operator`'s pubkey for the specified `quorumNumbers`.\"},\"getApk(uint8)\":{\"notice\":\"Returns the current APK for the provided `quorumNumber `\"},\"getApkHashAtBlockNumberAndIndex(uint8,uint32,uint256)\":{\"notice\":\"get hash of the apk of `quorumNumber` at `blockNumber` using the provided `index`; called by checkSignatures in BLSSignatureChecker.sol.\"},\"getApkHistoryLength(uint8)\":{\"notice\":\"Returns the length of ApkUpdates for the provided `quorumNumber`\"},\"getApkIndicesAtBlockNumber(bytes,uint256)\":{\"notice\":\"Returns the indices of the quorumApks index at `blockNumber` for the provided `quorumNumbers`\"},\"getApkUpdateAtIndex(uint8,uint256)\":{\"notice\":\"Returns the `ApkUpdate` struct at `index` in the list of APK updates for the `quorumNumber`\"},\"getOperatorFromPubkeyHash(bytes32)\":{\"notice\":\"Returns the operator address for the given `pubkeyHash`\"},\"getOperatorId(address)\":{\"notice\":\"returns the ID used to identify the `operator` within this AVS\"},\"getRegisteredPubkey(address)\":{\"notice\":\"Returns the pubkey and pubkey hash of an operator\"},\"initializeQuorum(uint8)\":{\"notice\":\"Initializes a new quorum by pushing its first apk update\"},\"operatorToPubkey(address)\":{\"notice\":\"maps operator address to pubkeyG1\"},\"operatorToPubkeyHash(address)\":{\"notice\":\"maps operator address to pubkey hash\"},\"pubkeyHashToOperator(bytes32)\":{\"notice\":\"maps pubkey hash to operator address\"},\"registerBLSPublicKey(address,((uint256,uint256),(uint256,uint256),(uint256[2],uint256[2])),(uint256,uint256))\":{\"notice\":\"Called by the RegistryCoordinator register an operator as the owner of a BLS public key.\"},\"registerOperator(address,bytes)\":{\"notice\":\"Registers the `operator`'s pubkey for the specified `quorumNumbers`.\"},\"registryCoordinator()\":{\"notice\":\"the registry coordinator contract\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/eigenlayer-middleware/src/BLSApkRegistry.sol\":\"BLSApkRegistry\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/openzeppelin-contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/eigenlayer-contracts/\",\":eigenlayer-core/=lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/eigenlayer-contracts/script/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xd3f57f3e95226d95a41399385a5b7512df7a2c6e8b3bf84d8f1e1d9d3a8acad1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1750f88e93c0f63c05d57d8f9770adaeec23209df8c8a1c004df4244750bbae9\",\"dweb:/ipfs/QmQYCHgJLpGiDauL2Z3WF5ofansgcngKFV3AeeDo2EsJDb\"]},\"lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xda0ef432f8d186276739e8f8547712c9978c172de48ca0afc7935d0e84cabb03\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://97de6d182477a30c298880e0896b639ada35637a6acc4e3fadf89bf68ae83096\",\"dweb:/ipfs/QmUPzdhiKXFuFZaFvKFMrYMeF93N7wiKyigELVjRA1WsqA\"]},\"lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x3ac96c08e5ac35a015a8b943fe4509370f73cfb420375efb3808fe3c13840679\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://e76b0c1d96925dc54b11365ceb8178a1de0b2bdb1260da0f9942048d35892bc4\",\"dweb:/ipfs/QmSyew5ejxyEXsbq5t6pmhmBZmojQcesgNXgTDJmJMg1TU\"]},\"lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x0d17c9b2b6cb6a33685ee6fc2f4c6e1b6ac59fd7555b42591575abdd65bf6395\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://14fdbaa196e46791b75e8fbb1862bc02ae76cfbd956cb8967dc18f0f88182ad1\",\"dweb:/ipfs/QmS3p4xrqgVABzAeG3ssinhKXEm6bCXR24i14VJtGJDv46\"]},\"lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x2a2b15842b11da4f2e6ea7016a4f94cfcfce18f2306c3bb3bb17b05831bd2c2a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9c4b5da7c287fcb1a95b2543ba9d33df8829420dce39c1d15e950f31af6035a8\",\"dweb:/ipfs/QmWM2LYsvnf69g4aLjYXUKE6gQ54Rd95PLXU3xTQ2xiBss\"]},\"lib/eigenlayer-middleware/src/BLSApkRegistry.sol\":{\"keccak256\":\"0xa5632faa4e055abaa0ca6b8f2803308cd11f62b283709290c676ec0a8753b95d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://987a5350e24356deb75144bddd4b0efa928f447cf1cc249bd9516091fd8d085c\",\"dweb:/ipfs/Qmf7eDFx6x8K7BVPqaCcXLqvmb1GvRs9PR6X9QF3T58acm\"]},\"lib/eigenlayer-middleware/src/BLSApkRegistryStorage.sol\":{\"keccak256\":\"0x75f2a1c1061de4fdbda56ca5a0a2434c4ff77b4839c58aad65488c291add9159\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4c9b19dcb594301ce1acf0492053fca69f02f786c4ea4a0e52324d410ba24965\",\"dweb:/ipfs/QmQ7npTs5FuLaXJ18YUwQDnah93xKEHkgaQ6xta1pgAeTk\"]},\"lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0x7f6aa0b9e3a7ddf3097932d073e49064326ae56303e4f40cf88c9e5a61968166\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://8728c82cb251eaf5b9d7001a41a754265fdb293c0630ddd0170b842582b5a059\",\"dweb:/ipfs/Qmc55Qf7qS5uABgENmc2G79DgwWyZ6aoB1EK4togbyCj4A\"]},\"lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x1fbcb7dd742b7fe004e44a4db03ef7160e3f1b9c6262c6b43484553d23893e70\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://33f42c3376409c9079a35e119ae5e122246cd4ae3adf9f6d9b0166aca8de86bb\",\"dweb:/ipfs/QmdA5JtYbCwVXWsX6t8WLgU5ejy2ZWoATb5BkF8ntn4K1x\"]},\"lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xaa994bdacd0d8718b4a9c018debece071e28a0906a3f041d53f1874eb882fad9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://0f175cfc849fb4ac38d1629e6f87c1d7b39bd5eb2bc62e6d40d57a9ec34a62db\",\"dweb:/ipfs/QmQhgQNjZaYYzEpk2X732ZKPfTbFGr8y8RLhDWizZSQLxi\"]},\"lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0xd12e4327dd3af7c467514eeb26f6330263d40ea5bcea4393f20dcb4505b6aa20\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9d2ed354473eb07fa145d4679b27919caff7d2d638c2a0ecffc0d8a5dc4d64b0\",\"dweb:/ipfs/QmagWvvrW1h9wHkDKrbaQGJ8H7mQQyZKQx1BSdTSCErk14\"]},\"lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xc7c5c9529ba56d63487a02cebd5ec41e4f7044ccac6a7bdbbd53492932f1e5e9\",\"license\":\"BUSL-1.1 AND MIT\",\"urls\":[\"bzz-raw://1d3ab347b2554544eee112846bf479fcd579ce573275c59d84676207ec36be06\",\"dweb:/ipfs/Qmd8e3z1JGuHKjLAdep4u8JDBsf3j6hNShQCt14eKufJYh\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]}},\"version\":1}", - "metadata": { - "compiler": { - "version": "0.8.12+commit.f00d7308" - }, - "language": "Solidity", - "output": { - "abi": [ - { - "inputs": [ - { - "internalType": "contract IRegistryCoordinator", - "name": "_registryCoordinator", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "version", - "type": "uint8", - "indexed": false - } - ], - "type": "event", - "name": "Initialized", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address", - "indexed": true - }, - { - "internalType": "struct BN254.G1Point", - "name": "pubkeyG1", - "type": "tuple", - "components": [ - { - "internalType": "uint256", - "name": "X", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "Y", - "type": "uint256" - } - ], - "indexed": false - }, - { - "internalType": "struct BN254.G2Point", - "name": "pubkeyG2", - "type": "tuple", - "components": [ - { - "internalType": "uint256[2]", - "name": "X", - "type": "uint256[2]" - }, - { - "internalType": "uint256[2]", - "name": "Y", - "type": "uint256[2]" - } - ], - "indexed": false - } - ], - "type": "event", - "name": "NewPubkeyRegistration", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address", - "indexed": false - }, - { - "internalType": "bytes", - "name": "quorumNumbers", - "type": "bytes", - "indexed": false - } - ], - "type": "event", - "name": "OperatorAddedToQuorums", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address", - "indexed": false - }, - { - "internalType": "bytes", - "name": "quorumNumbers", - "type": "bytes", - "indexed": false - } - ], - "type": "event", - "name": "OperatorRemovedFromQuorums", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function", - "name": "apkHistory", - "outputs": [ - { - "internalType": "bytes24", - "name": "apkHash", - "type": "bytes24" - }, - { - "internalType": "uint32", - "name": "updateBlockNumber", - "type": "uint32" - }, - { - "internalType": "uint32", - "name": "nextUpdateBlockNumber", - "type": "uint32" - } - ] - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function", - "name": "currentApk", - "outputs": [ - { - "internalType": "uint256", - "name": "X", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "Y", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bytes", - "name": "quorumNumbers", - "type": "bytes" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "deregisterOperator" - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "quorumNumber", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function", - "name": "getApk", - "outputs": [ - { - "internalType": "struct BN254.G1Point", - "name": "", - "type": "tuple", - "components": [ - { - "internalType": "uint256", - "name": "X", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "Y", - "type": "uint256" - } - ] - } - ] - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "quorumNumber", - "type": "uint8" - }, - { - "internalType": "uint32", - "name": "blockNumber", - "type": "uint32" - }, - { - "internalType": "uint256", - "name": "index", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function", - "name": "getApkHashAtBlockNumberAndIndex", - "outputs": [ - { - "internalType": "bytes24", - "name": "", - "type": "bytes24" - } - ] - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "quorumNumber", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function", - "name": "getApkHistoryLength", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "quorumNumbers", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "blockNumber", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function", - "name": "getApkIndicesAtBlockNumber", - "outputs": [ - { - "internalType": "uint32[]", - "name": "", - "type": "uint32[]" - } - ] - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "quorumNumber", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "index", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function", - "name": "getApkUpdateAtIndex", - "outputs": [ - { - "internalType": "struct IBLSApkRegistry.ApkUpdate", - "name": "", - "type": "tuple", - "components": [ - { - "internalType": "bytes24", - "name": "apkHash", - "type": "bytes24" - }, - { - "internalType": "uint32", - "name": "updateBlockNumber", - "type": "uint32" - }, - { - "internalType": "uint32", - "name": "nextUpdateBlockNumber", - "type": "uint32" - } - ] - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "pubkeyHash", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function", - "name": "getOperatorFromPubkeyHash", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "getOperatorId", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "getRegisteredPubkey", - "outputs": [ - { - "internalType": "struct BN254.G1Point", - "name": "", - "type": "tuple", - "components": [ - { - "internalType": "uint256", - "name": "X", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "Y", - "type": "uint256" - } - ] - }, - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ] - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "quorumNumber", - "type": "uint8" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "initializeQuorum" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "operatorToPubkey", - "outputs": [ - { - "internalType": "uint256", - "name": "X", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "Y", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "operatorToPubkeyHash", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function", - "name": "pubkeyHashToOperator", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "struct IBLSApkRegistry.PubkeyRegistrationParams", - "name": "params", - "type": "tuple", - "components": [ - { - "internalType": "struct BN254.G1Point", - "name": "pubkeyRegistrationSignature", - "type": "tuple", - "components": [ - { - "internalType": "uint256", - "name": "X", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "Y", - "type": "uint256" - } - ] - }, - { - "internalType": "struct BN254.G1Point", - "name": "pubkeyG1", - "type": "tuple", - "components": [ - { - "internalType": "uint256", - "name": "X", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "Y", - "type": "uint256" - } - ] - }, - { - "internalType": "struct BN254.G2Point", - "name": "pubkeyG2", - "type": "tuple", - "components": [ - { - "internalType": "uint256[2]", - "name": "X", - "type": "uint256[2]" - }, - { - "internalType": "uint256[2]", - "name": "Y", - "type": "uint256[2]" - } - ] - } - ] - }, - { - "internalType": "struct BN254.G1Point", - "name": "pubkeyRegistrationMessageHash", - "type": "tuple", - "components": [ - { - "internalType": "uint256", - "name": "X", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "Y", - "type": "uint256" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "registerBLSPublicKey", - "outputs": [ - { - "internalType": "bytes32", - "name": "operatorId", - "type": "bytes32" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bytes", - "name": "quorumNumbers", - "type": "bytes" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "registerOperator" - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "registryCoordinator", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ] - } - ], - "devdoc": { - "kind": "dev", - "methods": { - "deregisterOperator(address,bytes)": { - "details": "access restricted to the RegistryCoordinatorPreconditions (these are assumed, not validated in this contract): 1) `quorumNumbers` has no duplicates 2) `quorumNumbers.length` != 0 3) `quorumNumbers` is ordered in ascending order 4) the operator is not already deregistered 5) `quorumNumbers` is a subset of the quorumNumbers that the operator is registered for", - "params": { - "operator": "The address of the operator to deregister.", - "quorumNumbers": "The quorum numbers the operator is deregistering from, where each byte is an 8 bit integer quorumNumber." - } - }, - "getApkHashAtBlockNumberAndIndex(uint8,uint32,uint256)": { - "params": { - "blockNumber": "is the number of the block for which the latest ApkHash will be retrieved", - "index": "is the index of the apkUpdate being retrieved from the list of quorum apkUpdates in storage", - "quorumNumber": "is the quorum whose ApkHash is being retrieved" - } - }, - "getApkIndicesAtBlockNumber(bytes,uint256)": { - "details": "Returns the current indices if `blockNumber >= block.number`" - }, - "getOperatorId(address)": { - "details": "Returns zero in the event that the `operator` has never registered for the AVS" - }, - "getRegisteredPubkey(address)": { - "details": "Reverts if the operator has not registered a valid pubkey" - }, - "initializeQuorum(uint8)": { - "params": { - "quorumNumber": "The number of the new quorum" - } - }, - "registerBLSPublicKey(address,((uint256,uint256),(uint256,uint256),(uint256[2],uint256[2])),(uint256,uint256))": { - "params": { - "operator": "is the operator for whom the key is being registered", - "params": "contains the G1 & G2 public keys of the operator, and a signature proving their ownership", - "pubkeyRegistrationMessageHash": "is a hash that the operator must sign to prove key ownership" - } - }, - "registerOperator(address,bytes)": { - "details": "access restricted to the RegistryCoordinatorPreconditions (these are assumed, not validated in this contract): 1) `quorumNumbers` has no duplicates 2) `quorumNumbers.length` != 0 3) `quorumNumbers` is ordered in ascending order 4) the operator is not already registered", - "params": { - "operator": "The address of the operator to register.", - "quorumNumbers": "The quorum numbers the operator is registering for, where each byte is an 8 bit integer quorumNumber." - } - } - }, - "version": 1 + { + "type": "function", + "name": "apkHistory", + "inputs": [ + { + "name": "", + "type": "uint8", + "internalType": "uint8" }, - "userdoc": { - "kind": "user", - "methods": { - "apkHistory(uint8,uint256)": { - "notice": "maps quorumNumber => historical aggregate pubkey updates" - }, - "constructor": { - "notice": "Sets the (immutable) `registryCoordinator` address" - }, - "currentApk(uint8)": { - "notice": "maps quorumNumber => current aggregate pubkey of quorum" - }, - "deregisterOperator(address,bytes)": { - "notice": "Deregisters the `operator`'s pubkey for the specified `quorumNumbers`." - }, - "getApk(uint8)": { - "notice": "Returns the current APK for the provided `quorumNumber `" - }, - "getApkHashAtBlockNumberAndIndex(uint8,uint32,uint256)": { - "notice": "get hash of the apk of `quorumNumber` at `blockNumber` using the provided `index`; called by checkSignatures in BLSSignatureChecker.sol." - }, - "getApkHistoryLength(uint8)": { - "notice": "Returns the length of ApkUpdates for the provided `quorumNumber`" - }, - "getApkIndicesAtBlockNumber(bytes,uint256)": { - "notice": "Returns the indices of the quorumApks index at `blockNumber` for the provided `quorumNumbers`" - }, - "getApkUpdateAtIndex(uint8,uint256)": { - "notice": "Returns the `ApkUpdate` struct at `index` in the list of APK updates for the `quorumNumber`" - }, - "getOperatorFromPubkeyHash(bytes32)": { - "notice": "Returns the operator address for the given `pubkeyHash`" - }, - "getOperatorId(address)": { - "notice": "returns the ID used to identify the `operator` within this AVS" - }, - "getRegisteredPubkey(address)": { - "notice": "Returns the pubkey and pubkey hash of an operator" - }, - "initializeQuorum(uint8)": { - "notice": "Initializes a new quorum by pushing its first apk update" - }, - "operatorToPubkey(address)": { - "notice": "maps operator address to pubkeyG1" - }, - "operatorToPubkeyHash(address)": { - "notice": "maps operator address to pubkey hash" - }, - "pubkeyHashToOperator(bytes32)": { - "notice": "maps pubkey hash to operator address" - }, - "registerBLSPublicKey(address,((uint256,uint256),(uint256,uint256),(uint256[2],uint256[2])),(uint256,uint256))": { - "notice": "Called by the RegistryCoordinator register an operator as the owner of a BLS public key." - }, - "registerOperator(address,bytes)": { - "notice": "Registers the `operator`'s pubkey for the specified `quorumNumbers`." - }, - "registryCoordinator()": { - "notice": "the registry coordinator contract" - } - }, - "version": 1 + { + "name": "", + "type": "uint256", + "internalType": "uint256" } - }, - "settings": { - "remappings": [ - "@openzeppelin-upgrades/=lib/openzeppelin-contracts-upgradeable/", - "@openzeppelin/=lib/openzeppelin-contracts/", - "ds-test/=lib/forge-std/lib/ds-test/src/", - "eigenlayer-contracts/=lib/eigenlayer-contracts/", - "eigenlayer-core/=lib/eigenlayer-contracts/src/", - "eigenlayer-middleware/=lib/eigenlayer-middleware/src/", - "eigenlayer-scripts/=lib/eigenlayer-contracts/script/", - "forge-std/=lib/forge-std/src/", - "openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/", - "openzeppelin-contracts/=lib/openzeppelin-contracts/" - ], - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs" - }, - "compilationTarget": { - "lib/eigenlayer-middleware/src/BLSApkRegistry.sol": "BLSApkRegistry" - }, - "libraries": {} - }, - "sources": { - "lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol": { - "keccak256": "0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00", - "urls": [ - "bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983", - "dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18" - ], - "license": "BUSL-1.1" - }, - "lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol": { - "keccak256": "0xd3f57f3e95226d95a41399385a5b7512df7a2c6e8b3bf84d8f1e1d9d3a8acad1", - "urls": [ - "bzz-raw://1750f88e93c0f63c05d57d8f9770adaeec23209df8c8a1c004df4244750bbae9", - "dweb:/ipfs/QmQYCHgJLpGiDauL2Z3WF5ofansgcngKFV3AeeDo2EsJDb" - ], - "license": "BUSL-1.1" - }, - "lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol": { - "keccak256": "0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c", - "urls": [ - "bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91", - "dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz" - ], - "license": "CC0-1.0" - }, - "lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol": { - "keccak256": "0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba", - "urls": [ - "bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc", - "dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR" - ], - "license": "BUSL-1.1" - }, - "lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol": { - "keccak256": "0xda0ef432f8d186276739e8f8547712c9978c172de48ca0afc7935d0e84cabb03", - "urls": [ - "bzz-raw://97de6d182477a30c298880e0896b639ada35637a6acc4e3fadf89bf68ae83096", - "dweb:/ipfs/QmUPzdhiKXFuFZaFvKFMrYMeF93N7wiKyigELVjRA1WsqA" - ], - "license": "BUSL-1.1" - }, - "lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol": { - "keccak256": "0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f", - "urls": [ - "bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324", - "dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5" - ], - "license": "BUSL-1.1" - }, - "lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol": { - "keccak256": "0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49", - "urls": [ - "bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d", - "dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx" - ], - "license": "BUSL-1.1" - }, - "lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol": { - "keccak256": "0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092", - "urls": [ - "bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c", - "dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9" - ], - "license": "BUSL-1.1" - }, - "lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol": { - "keccak256": "0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79", - "urls": [ - "bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232", - "dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY" - ], - "license": "BUSL-1.1" - }, - "lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol": { - "keccak256": "0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420", - "urls": [ - "bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73", - "dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ" - ], - "license": "BUSL-1.1" - }, - "lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol": { - "keccak256": "0x3ac96c08e5ac35a015a8b943fe4509370f73cfb420375efb3808fe3c13840679", - "urls": [ - "bzz-raw://e76b0c1d96925dc54b11365ceb8178a1de0b2bdb1260da0f9942048d35892bc4", - "dweb:/ipfs/QmSyew5ejxyEXsbq5t6pmhmBZmojQcesgNXgTDJmJMg1TU" - ], - "license": "BUSL-1.1" - }, - "lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol": { - "keccak256": "0x0d17c9b2b6cb6a33685ee6fc2f4c6e1b6ac59fd7555b42591575abdd65bf6395", - "urls": [ - "bzz-raw://14fdbaa196e46791b75e8fbb1862bc02ae76cfbd956cb8967dc18f0f88182ad1", - "dweb:/ipfs/QmS3p4xrqgVABzAeG3ssinhKXEm6bCXR24i14VJtGJDv46" - ], - "license": "BUSL-1.1" - }, - "lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol": { - "keccak256": "0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d", - "urls": [ - "bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f", - "dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ" - ], - "license": "BUSL-1.1" - }, - "lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol": { - "keccak256": "0x2a2b15842b11da4f2e6ea7016a4f94cfcfce18f2306c3bb3bb17b05831bd2c2a", - "urls": [ - "bzz-raw://9c4b5da7c287fcb1a95b2543ba9d33df8829420dce39c1d15e950f31af6035a8", - "dweb:/ipfs/QmWM2LYsvnf69g4aLjYXUKE6gQ54Rd95PLXU3xTQ2xiBss" - ], - "license": "BUSL-1.1" - }, - "lib/eigenlayer-middleware/src/BLSApkRegistry.sol": { - "keccak256": "0xa5632faa4e055abaa0ca6b8f2803308cd11f62b283709290c676ec0a8753b95d", - "urls": [ - "bzz-raw://987a5350e24356deb75144bddd4b0efa928f447cf1cc249bd9516091fd8d085c", - "dweb:/ipfs/Qmf7eDFx6x8K7BVPqaCcXLqvmb1GvRs9PR6X9QF3T58acm" - ], - "license": "BUSL-1.1" - }, - "lib/eigenlayer-middleware/src/BLSApkRegistryStorage.sol": { - "keccak256": "0x75f2a1c1061de4fdbda56ca5a0a2434c4ff77b4839c58aad65488c291add9159", - "urls": [ - "bzz-raw://4c9b19dcb594301ce1acf0492053fca69f02f786c4ea4a0e52324d410ba24965", - "dweb:/ipfs/QmQ7npTs5FuLaXJ18YUwQDnah93xKEHkgaQ6xta1pgAeTk" - ], - "license": "BUSL-1.1" - }, - "lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol": { - "keccak256": "0x7f6aa0b9e3a7ddf3097932d073e49064326ae56303e4f40cf88c9e5a61968166", - "urls": [ - "bzz-raw://8728c82cb251eaf5b9d7001a41a754265fdb293c0630ddd0170b842582b5a059", - "dweb:/ipfs/Qmc55Qf7qS5uABgENmc2G79DgwWyZ6aoB1EK4togbyCj4A" - ], - "license": "BUSL-1.1" - }, - "lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol": { - "keccak256": "0x1fbcb7dd742b7fe004e44a4db03ef7160e3f1b9c6262c6b43484553d23893e70", - "urls": [ - "bzz-raw://33f42c3376409c9079a35e119ae5e122246cd4ae3adf9f6d9b0166aca8de86bb", - "dweb:/ipfs/QmdA5JtYbCwVXWsX6t8WLgU5ejy2ZWoATb5BkF8ntn4K1x" - ], - "license": "BUSL-1.1" - }, - "lib/eigenlayer-middleware/src/interfaces/IRegistry.sol": { - "keccak256": "0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3", - "urls": [ - "bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25", - "dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY" - ], - "license": "BUSL-1.1" + ], + "outputs": [ + { + "name": "apkHash", + "type": "bytes24", + "internalType": "bytes24" }, - "lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol": { - "keccak256": "0xaa994bdacd0d8718b4a9c018debece071e28a0906a3f041d53f1874eb882fad9", - "urls": [ - "bzz-raw://0f175cfc849fb4ac38d1629e6f87c1d7b39bd5eb2bc62e6d40d57a9ec34a62db", - "dweb:/ipfs/QmQhgQNjZaYYzEpk2X732ZKPfTbFGr8y8RLhDWizZSQLxi" - ], - "license": "BUSL-1.1" + { + "name": "updateBlockNumber", + "type": "uint32", + "internalType": "uint32" }, - "lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol": { - "keccak256": "0xd12e4327dd3af7c467514eeb26f6330263d40ea5bcea4393f20dcb4505b6aa20", - "urls": [ - "bzz-raw://9d2ed354473eb07fa145d4679b27919caff7d2d638c2a0ecffc0d8a5dc4d64b0", - "dweb:/ipfs/QmagWvvrW1h9wHkDKrbaQGJ8H7mQQyZKQx1BSdTSCErk14" - ], - "license": "BUSL-1.1" + { + "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" }, - "lib/eigenlayer-middleware/src/libraries/BN254.sol": { - "keccak256": "0xc7c5c9529ba56d63487a02cebd5ec41e4f7044ccac6a7bdbbd53492932f1e5e9", - "urls": [ - "bzz-raw://1d3ab347b2554544eee112846bf479fcd579ce573275c59d84676207ec36be06", - "dweb:/ipfs/Qmd8e3z1JGuHKjLAdep4u8JDBsf3j6hNShQCt14eKufJYh" - ], - "license": "BUSL-1.1 AND MIT" + { + "name": "Y", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "deregisterOperator", + "inputs": [ + { + "name": "operator", + "type": "address", + "internalType": "address" }, - "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol": { - "keccak256": "0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e", - "urls": [ - "bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497", - "dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8" - ], - "license": "MIT" + { + "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": "struct BN254.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" }, - "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol": { - "keccak256": "0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3", - "urls": [ - "bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4", - "dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt" - ], - "license": "MIT" + { + "name": "blockNumber", + "type": "uint32", + "internalType": "uint32" }, - "lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol": { - "keccak256": "0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61", - "urls": [ - "bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354", - "dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce" - ], - "license": "MIT" + { + "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" }, - "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol": { - "keccak256": "0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b", - "urls": [ - "bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34", - "dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr" - ], - "license": "MIT" + { + "name": "blockNumber", + "type": "uint256", + "internalType": "uint256" } - }, - "version": 1 + ], + "outputs": [ + { + "name": "", + "type": "uint32[]", + "internalType": "uint32[]" + } + ], + "stateMutability": "view" }, - "ast": { - "absolutePath": "lib/eigenlayer-middleware/src/BLSApkRegistry.sol", - "id": 5600, - "exportedSymbols": { - "BLSApkRegistry": [ - 5599 - ], - "BLSApkRegistryStorage": [ - 5671 - ], - "BN254": [ - 13824 - ], - "IRegistryCoordinator": [ - 12546 - ] - }, - "nodeType": "SourceUnit", - "src": "37:12784:23", - "nodes": [ + { + "type": "function", + "name": "getApkUpdateAtIndex", + "inputs": [ { - "id": 4905, - "nodeType": "PragmaDirective", - "src": "37:24:23", - "nodes": [], - "literals": [ - "solidity", - "=", - "0.8", - ".12" - ] + "name": "quorumNumber", + "type": "uint8", + "internalType": "uint8" }, { - "id": 4907, - "nodeType": "ImportDirective", - "src": "63:66:23", - "nodes": [], - "absolutePath": "lib/eigenlayer-middleware/src/BLSApkRegistryStorage.sol", - "file": "./BLSApkRegistryStorage.sol", - "nameLocation": "-1:-1:-1", - "scope": 5600, - "sourceUnit": 5672, - "symbolAliases": [ + "name": "index", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "tuple", + "internalType": "struct IBLSApkRegistry.ApkUpdate", + "components": [ { - "foreign": { - "id": 4906, - "name": "BLSApkRegistryStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5671, - "src": "71:21:23", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_BLSApkRegistryStorage_$5671_$", - "typeString": "type(contract BLSApkRegistryStorage)" - } - }, - "nameLocation": "-1:-1:-1" + "name": "apkHash", + "type": "bytes24", + "internalType": "bytes24" + }, + { + "name": "updateBlockNumber", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "nextUpdateBlockNumber", + "type": "uint32", + "internalType": "uint32" } - ], - "unitAlias": "" - }, + ] + } + ], + "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": [ { - "id": 4909, - "nodeType": "ImportDirective", - "src": "131:75:23", - "nodes": [], - "absolutePath": "lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol", - "file": "./interfaces/IRegistryCoordinator.sol", - "nameLocation": "-1:-1:-1", - "scope": 5600, - "sourceUnit": 12547, - "symbolAliases": [ + "name": "", + "type": "tuple", + "internalType": "struct BN254.G1Point", + "components": [ { - "foreign": { - "id": 4908, - "name": "IRegistryCoordinator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12546, - "src": "139:20:23", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IRegistryCoordinator_$12546_$", - "typeString": "type(contract IRegistryCoordinator)" - } - }, - "nameLocation": "-1:-1:-1" + "name": "X", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "Y", + "type": "uint256", + "internalType": "uint256" } - ], - "unitAlias": "" + ] }, { - "id": 4911, - "nodeType": "ImportDirective", - "src": "208:44:23", - "nodes": [], - "absolutePath": "lib/eigenlayer-middleware/src/libraries/BN254.sol", - "file": "./libraries/BN254.sol", - "nameLocation": "-1:-1:-1", - "scope": 5600, - "sourceUnit": 13825, - "symbolAliases": [ - { - "foreign": { - "id": 4910, - "name": "BN254", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13824, - "src": "216:5:23", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_BN254_$13824_$", - "typeString": "type(library BN254)" - } - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" + "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" }, { - "id": 5599, - "nodeType": "ContractDefinition", - "src": "254:12566:23", - "nodes": [ + "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": "struct IBLSApkRegistry.PubkeyRegistrationParams", + "components": [ { - "id": 4917, - "nodeType": "UsingForDirective", - "src": "309:30:23", - "nodes": [], - "libraryName": { - "id": 4914, - "name": "BN254", - "nodeType": "IdentifierPath", - "referencedDeclaration": 13824, - "src": "315:5:23" - }, - "typeName": { - "id": 4916, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 4915, - "name": "BN254.G1Point", - "nodeType": "IdentifierPath", - "referencedDeclaration": 12956, - "src": "325:13:23" + "name": "pubkeyRegistrationSignature", + "type": "tuple", + "internalType": "struct BN254.G1Point", + "components": [ + { + "name": "X", + "type": "uint256", + "internalType": "uint256" }, - "referencedDeclaration": 12956, - "src": "325:13:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_storage_ptr", - "typeString": "struct BN254.G1Point" - } - } - }, - { - "id": 4933, - "nodeType": "ModifierDefinition", - "src": "436:230:23", - "nodes": [], - "body": { - "id": 4932, - "nodeType": "Block", - "src": "471:195:23", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 4927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 4921, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "502:3:23", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4922, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "502:10:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "arguments": [ - { - "id": 4925, - "name": "registryCoordinator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5620, - "src": "524:19:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4924, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "516:7:23", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 4923, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "516:7:23", - "typeDescriptions": {} - } - }, - "id": 4926, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "516:28:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "502:42:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "424c5341706b52656769737472792e6f6e6c795265676973747279436f6f7264696e61746f723a2063616c6c6572206973206e6f742074686520726567697374727920636f6f7264696e61746f72", - "id": 4928, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "558:80:23", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_54d3e9be9d60057c91a9db965bbc05585b360aa3d2786e597107b34449c0cf36", - "typeString": "literal_string \"BLSApkRegistry.onlyRegistryCoordinator: caller is not the registry coordinator\"" - }, - "value": "BLSApkRegistry.onlyRegistryCoordinator: caller is not the registry coordinator" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_54d3e9be9d60057c91a9db965bbc05585b360aa3d2786e597107b34449c0cf36", - "typeString": "literal_string \"BLSApkRegistry.onlyRegistryCoordinator: caller is not the registry coordinator\"" - } - ], - "id": 4920, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "481:7:23", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 4929, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "481:167:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4930, - "nodeType": "ExpressionStatement", - "src": "481:167:23" - }, - { - "id": 4931, - "nodeType": "PlaceholderStatement", - "src": "658:1:23" - } - ] - }, - "documentation": { - "id": 4918, - "nodeType": "StructuredDocumentation", - "src": "345:86:23", - "text": "@notice when applied to a function, only allows the RegistryCoordinator to call it" - }, - "name": "onlyRegistryCoordinator", - "nameLocation": "445:23:23", - "parameters": { - "id": 4919, - "nodeType": "ParameterList", - "parameters": [], - "src": "468:2:23" - }, - "virtual": false, - "visibility": "internal" - }, - { - "id": 4944, - "nodeType": "FunctionDefinition", - "src": "739:115:23", - "nodes": [], - "body": { - "id": 4943, - "nodeType": "Block", - "src": "852:2:23", - "nodes": [], - "statements": [] - }, - "documentation": { - "id": 4934, - "nodeType": "StructuredDocumentation", - "src": "672:62:23", - "text": "@notice Sets the (immutable) `registryCoordinator` address" - }, - "implemented": true, - "kind": "constructor", - "modifiers": [ { - "arguments": [ - { - "id": 4940, - "name": "_registryCoordinator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4937, - "src": "830:20:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRegistryCoordinator_$12546", - "typeString": "contract IRegistryCoordinator" - } - } - ], - "id": 4941, - "kind": "baseConstructorSpecifier", - "modifierName": { - "id": 4939, - "name": "BLSApkRegistryStorage", - "nodeType": "IdentifierPath", - "referencedDeclaration": 5671, - "src": "808:21:23" - }, - "nodeType": "ModifierInvocation", - "src": "808:43:23" + "name": "Y", + "type": "uint256", + "internalType": "uint256" } - ], - "name": "", - "nameLocation": "-1:-1:-1", - "parameters": { - "id": 4938, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4937, - "mutability": "mutable", - "name": "_registryCoordinator", - "nameLocation": "781:20:23", - "nodeType": "VariableDeclaration", - "scope": 4944, - "src": "760:41:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRegistryCoordinator_$12546", - "typeString": "contract IRegistryCoordinator" - }, - "typeName": { - "id": 4936, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 4935, - "name": "IRegistryCoordinator", - "nodeType": "IdentifierPath", - "referencedDeclaration": 12546, - "src": "760:20:23" - }, - "referencedDeclaration": 12546, - "src": "760:20:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRegistryCoordinator_$12546", - "typeString": "contract IRegistryCoordinator" - } - }, - "visibility": "internal" - } - ], - "src": "750:57:23" - }, - "returnParameters": { - "id": 4942, - "nodeType": "ParameterList", - "parameters": [], - "src": "852:0:23" - }, - "scope": 5599, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" + ] }, { - "id": 4974, - "nodeType": "FunctionDefinition", - "src": "1744:535:23", - "nodes": [], - "body": { - "id": 4973, - "nodeType": "Block", - "src": "1877:402:23", - "nodes": [], - "statements": [ - { - "assignments": [ - 4958, - null - ], - "declarations": [ - { - "constant": false, - "id": 4958, - "mutability": "mutable", - "name": "pubkey", - "nameLocation": "1989:6:23", - "nodeType": "VariableDeclaration", - "scope": 4973, - "src": "1968:27:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_memory_ptr", - "typeString": "struct BN254.G1Point" - }, - "typeName": { - "id": 4957, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 4956, - "name": "BN254.G1Point", - "nodeType": "IdentifierPath", - "referencedDeclaration": 12956, - "src": "1968:13:23" - }, - "referencedDeclaration": 12956, - "src": "1968:13:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_storage_ptr", - "typeString": "struct BN254.G1Point" - } - }, - "visibility": "internal" - }, - null - ], - "id": 4962, - "initialValue": { - "arguments": [ - { - "id": 4960, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4947, - "src": "2021:8:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4959, - "name": "getRegisteredPubkey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5364, - "src": "2001:19:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_struct$_G1Point_$12956_memory_ptr_$_t_bytes32_$", - "typeString": "function (address) view returns (struct BN254.G1Point memory,bytes32)" - } - }, - "id": 4961, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2001:29:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_struct$_G1Point_$12956_memory_ptr_$_t_bytes32_$", - "typeString": "tuple(struct BN254.G1Point memory,bytes32)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1967:63:23" - }, - { - "expression": { - "arguments": [ - { - "id": 4964, - "name": "quorumNumbers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4949, - "src": "2114:13:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "id": 4965, - "name": "pubkey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4958, - "src": "2129:6:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_memory_ptr", - "typeString": "struct BN254.G1Point memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_struct$_G1Point_$12956_memory_ptr", - "typeString": "struct BN254.G1Point memory" - } - ], - "id": 4963, - "name": "_processQuorumApkUpdate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5323, - "src": "2090:23:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_struct$_G1Point_$12956_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,struct BN254.G1Point memory)" - } - }, - "id": 4966, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2090:46:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4967, - "nodeType": "ExpressionStatement", - "src": "2090:46:23" - }, - { - "eventCall": { - "arguments": [ - { - "id": 4969, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4947, - "src": "2248:8:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 4970, - "name": "quorumNumbers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4949, - "src": "2258:13:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 4968, - "name": "OperatorAddedToQuorums", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11962, - "src": "2225:22:23", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,bytes memory)" - } - }, - "id": 4971, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2225:47:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4972, - "nodeType": "EmitStatement", - "src": "2220:52:23" - } - ] - }, - "baseFunctions": [ - 11976 - ], - "documentation": { - "id": 4945, - "nodeType": "StructuredDocumentation", - "src": "1095:644:23", - "text": " @notice Registers the `operator`'s pubkey for the specified `quorumNumbers`.\n @param operator The address of the operator to register.\n @param quorumNumbers The quorum numbers the operator is registering for, where each byte is an 8 bit integer quorumNumber.\n @dev access restricted to the RegistryCoordinator\n @dev Preconditions (these are assumed, not validated in this contract):\n 1) `quorumNumbers` has no duplicates\n 2) `quorumNumbers.length` != 0\n 3) `quorumNumbers` is ordered in ascending order\n 4) the operator is not already registered" - }, - "functionSelector": "3fb27952", - "implemented": true, - "kind": "function", - "modifiers": [ + "name": "pubkeyG1", + "type": "tuple", + "internalType": "struct BN254.G1Point", + "components": [ { - "id": 4952, - "kind": "modifierInvocation", - "modifierName": { - "id": 4951, - "name": "onlyRegistryCoordinator", - "nodeType": "IdentifierPath", - "referencedDeclaration": 4933, - "src": "1853:23:23" - }, - "nodeType": "ModifierInvocation", - "src": "1853:23:23" - } - ], - "name": "registerOperator", - "nameLocation": "1753:16:23", - "parameters": { - "id": 4950, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4947, - "mutability": "mutable", - "name": "operator", - "nameLocation": "1787:8:23", - "nodeType": "VariableDeclaration", - "scope": 4974, - "src": "1779:16:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4946, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1779:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4949, - "mutability": "mutable", - "name": "quorumNumbers", - "nameLocation": "1818:13:23", - "nodeType": "VariableDeclaration", - "scope": 4974, - "src": "1805:26:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4948, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1805:5:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "1769:68:23" - }, - "returnParameters": { - "id": 4953, - "nodeType": "ParameterList", - "parameters": [], - "src": "1877:0:23" - }, - "scope": 5599, - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "public" - }, - { - "id": 5006, - "nodeType": "FunctionDefinition", - "src": "3046:476:23", - "nodes": [], - "body": { - "id": 5005, - "nodeType": "Block", - "src": "3181:341:23", - "nodes": [], - "statements": [ - { - "assignments": [ - 4988, - null - ], - "declarations": [ - { - "constant": false, - "id": 4988, - "mutability": "mutable", - "name": "pubkey", - "nameLocation": "3293:6:23", - "nodeType": "VariableDeclaration", - "scope": 5005, - "src": "3272:27:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_memory_ptr", - "typeString": "struct BN254.G1Point" - }, - "typeName": { - "id": 4987, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 4986, - "name": "BN254.G1Point", - "nodeType": "IdentifierPath", - "referencedDeclaration": 12956, - "src": "3272:13:23" - }, - "referencedDeclaration": 12956, - "src": "3272:13:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_storage_ptr", - "typeString": "struct BN254.G1Point" - } - }, - "visibility": "internal" - }, - null - ], - "id": 4992, - "initialValue": { - "arguments": [ - { - "id": 4990, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4977, - "src": "3325:8:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4989, - "name": "getRegisteredPubkey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5364, - "src": "3305:19:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_struct$_G1Point_$12956_memory_ptr_$_t_bytes32_$", - "typeString": "function (address) view returns (struct BN254.G1Point memory,bytes32)" - } - }, - "id": 4991, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3305:29:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_struct$_G1Point_$12956_memory_ptr_$_t_bytes32_$", - "typeString": "tuple(struct BN254.G1Point memory,bytes32)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3271:63:23" - }, - { - "expression": { - "arguments": [ - { - "id": 4994, - "name": "quorumNumbers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4979, - "src": "3418:13:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 4995, - "name": "pubkey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4988, - "src": "3433:6:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_memory_ptr", - "typeString": "struct BN254.G1Point memory" - } - }, - "id": 4996, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "negate", - "nodeType": "MemberAccess", - "referencedDeclaration": 13079, - "src": "3433:13:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_G1Point_$12956_memory_ptr_$returns$_t_struct$_G1Point_$12956_memory_ptr_$bound_to$_t_struct$_G1Point_$12956_memory_ptr_$", - "typeString": "function (struct BN254.G1Point memory) pure returns (struct BN254.G1Point memory)" - } - }, - "id": 4997, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3433:15:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_memory_ptr", - "typeString": "struct BN254.G1Point memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_struct$_G1Point_$12956_memory_ptr", - "typeString": "struct BN254.G1Point memory" - } - ], - "id": 4993, - "name": "_processQuorumApkUpdate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5323, - "src": "3394:23:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_struct$_G1Point_$12956_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,struct BN254.G1Point memory)" - } - }, - "id": 4998, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3394:55:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4999, - "nodeType": "ExpressionStatement", - "src": "3394:55:23" - }, - { - "eventCall": { - "arguments": [ - { - "id": 5001, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4977, - "src": "3491:8:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 5002, - "name": "quorumNumbers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4979, - "src": "3501:13:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 5000, - "name": "OperatorRemovedFromQuorums", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11968, - "src": "3464:26:23", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,bytes memory)" - } - }, - "id": 5003, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3464:51:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5004, - "nodeType": "EmitStatement", - "src": "3459:56:23" - } - ] - }, - "baseFunctions": [ - 11984 - ], - "documentation": { - "id": 4975, - "nodeType": "StructuredDocumentation", - "src": "2285:756:23", - "text": " @notice Deregisters the `operator`'s pubkey for the specified `quorumNumbers`.\n @param operator The address of the operator to deregister.\n @param quorumNumbers The quorum numbers the operator is deregistering from, where each byte is an 8 bit integer quorumNumber.\n @dev access restricted to the RegistryCoordinator\n @dev Preconditions (these are assumed, not validated in this contract):\n 1) `quorumNumbers` has no duplicates\n 2) `quorumNumbers.length` != 0\n 3) `quorumNumbers` is ordered in ascending order\n 4) the operator is not already deregistered\n 5) `quorumNumbers` is a subset of the quorumNumbers that the operator is registered for" - }, - "functionSelector": "f4e24fe5", - "implemented": true, - "kind": "function", - "modifiers": [ + "name": "X", + "type": "uint256", + "internalType": "uint256" + }, { - "id": 4982, - "kind": "modifierInvocation", - "modifierName": { - "id": 4981, - "name": "onlyRegistryCoordinator", - "nodeType": "IdentifierPath", - "referencedDeclaration": 4933, - "src": "3157:23:23" - }, - "nodeType": "ModifierInvocation", - "src": "3157:23:23" + "name": "Y", + "type": "uint256", + "internalType": "uint256" } - ], - "name": "deregisterOperator", - "nameLocation": "3055:18:23", - "parameters": { - "id": 4980, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4977, - "mutability": "mutable", - "name": "operator", - "nameLocation": "3091:8:23", - "nodeType": "VariableDeclaration", - "scope": 5006, - "src": "3083:16:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4976, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3083:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4979, - "mutability": "mutable", - "name": "quorumNumbers", - "nameLocation": "3122:13:23", - "nodeType": "VariableDeclaration", - "scope": 5006, - "src": "3109:26:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4978, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3109:5:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "3073:68:23" - }, - "returnParameters": { - "id": 4983, - "nodeType": "ParameterList", - "parameters": [], - "src": "3181:0:23" - }, - "scope": 5599, - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "public" + ] }, { - "id": 5043, - "nodeType": "FunctionDefinition", - "src": "3672:392:23", - "nodes": [], - "body": { - "id": 5042, - "nodeType": "Block", - "src": "3757:307:23", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5020, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "baseExpression": { - "id": 5015, - "name": "apkHistory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5643, - "src": "3775:10:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint8_$_t_array$_t_struct$_ApkUpdate_$11935_storage_$dyn_storage_$", - "typeString": "mapping(uint8 => struct IBLSApkRegistry.ApkUpdate storage ref[] storage ref)" - } - }, - "id": 5017, - "indexExpression": { - "id": 5016, - "name": "quorumNumber", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5009, - "src": "3786:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3775:24:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ApkUpdate_$11935_storage_$dyn_storage", - "typeString": "struct IBLSApkRegistry.ApkUpdate storage ref[] storage ref" - } - }, - "id": 5018, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "src": "3775:31:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 5019, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3810:1:23", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3775:36:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "424c5341706b52656769737472792e696e697469616c697a6551756f72756d3a2071756f72756d20616c726561647920657869737473", - "id": 5021, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3813:56:23", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_03b6f5ab04d42d9ca9cfd97d9d3e27fc28c05cf3f9756bd78eabb8a9e35f00b5", - "typeString": "literal_string \"BLSApkRegistry.initializeQuorum: quorum already exists\"" - }, - "value": "BLSApkRegistry.initializeQuorum: quorum already exists" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_03b6f5ab04d42d9ca9cfd97d9d3e27fc28c05cf3f9756bd78eabb8a9e35f00b5", - "typeString": "literal_string \"BLSApkRegistry.initializeQuorum: quorum already exists\"" - } - ], - "id": 5014, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "3767:7:23", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 5022, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3767:103:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5023, - "nodeType": "ExpressionStatement", - "src": "3767:103:23" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "hexValue": "30", - "id": 5031, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3952:1:23", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5030, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3944:7:23", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes24_$", - "typeString": "type(bytes24)" - }, - "typeName": { - "id": 5029, - "name": "bytes24", - "nodeType": "ElementaryTypeName", - "src": "3944:7:23", - "typeDescriptions": {} - } - }, - "id": 5032, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3944:10:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes24", - "typeString": "bytes24" - } - }, - { - "arguments": [ - { - "expression": { - "id": 5035, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "3994:5:23", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 5036, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "src": "3994:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5034, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3987:6:23", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - }, - "typeName": { - "id": 5033, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "3987:6:23", - "typeDescriptions": {} - } - }, - "id": 5037, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3987:20:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "hexValue": "30", - "id": 5038, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4044:1:23", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes24", - "typeString": "bytes24" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5028, - "name": "ApkUpdate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11935, - "src": "3911:9:23", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_ApkUpdate_$11935_storage_ptr_$", - "typeString": "type(struct IBLSApkRegistry.ApkUpdate storage pointer)" - } - }, - "id": 5039, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "apkHash", - "updateBlockNumber", - "nextUpdateBlockNumber" - ], - "nodeType": "FunctionCall", - "src": "3911:145:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_ApkUpdate_$11935_memory_ptr", - "typeString": "struct IBLSApkRegistry.ApkUpdate memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ApkUpdate_$11935_memory_ptr", - "typeString": "struct IBLSApkRegistry.ApkUpdate memory" - } - ], - "expression": { - "baseExpression": { - "id": 5024, - "name": "apkHistory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5643, - "src": "3881:10:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint8_$_t_array$_t_struct$_ApkUpdate_$11935_storage_$dyn_storage_$", - "typeString": "mapping(uint8 => struct IBLSApkRegistry.ApkUpdate storage ref[] storage ref)" - } - }, - "id": 5026, - "indexExpression": { - "id": 5025, - "name": "quorumNumber", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5009, - "src": "3892:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3881:24:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ApkUpdate_$11935_storage_$dyn_storage", - "typeString": "struct IBLSApkRegistry.ApkUpdate storage ref[] storage ref" - } - }, - "id": 5027, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "src": "3881:29:23", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_struct$_ApkUpdate_$11935_storage_$dyn_storage_ptr_$_t_struct$_ApkUpdate_$11935_storage_$returns$__$bound_to$_t_array$_t_struct$_ApkUpdate_$11935_storage_$dyn_storage_ptr_$", - "typeString": "function (struct IBLSApkRegistry.ApkUpdate storage ref[] storage pointer,struct IBLSApkRegistry.ApkUpdate storage ref)" - } - }, - "id": 5040, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3881:176:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5041, - "nodeType": "ExpressionStatement", - "src": "3881:176:23" - } - ] - }, - "baseFunctions": [ - 11990 - ], - "documentation": { - "id": 5007, - "nodeType": "StructuredDocumentation", - "src": "3528:139:23", - "text": " @notice Initializes a new quorum by pushing its first apk update\n @param quorumNumber The number of the new quorum" - }, - "functionSelector": "26d941f2", - "implemented": true, - "kind": "function", - "modifiers": [ + "name": "pubkeyG2", + "type": "tuple", + "internalType": "struct BN254.G2Point", + "components": [ { - "id": 5012, - "kind": "modifierInvocation", - "modifierName": { - "id": 5011, - "name": "onlyRegistryCoordinator", - "nodeType": "IdentifierPath", - "referencedDeclaration": 4933, - "src": "3733:23:23" - }, - "nodeType": "ModifierInvocation", - "src": "3733:23:23" - } - ], - "name": "initializeQuorum", - "nameLocation": "3681:16:23", - "parameters": { - "id": 5010, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5009, - "mutability": "mutable", - "name": "quorumNumber", - "nameLocation": "3704:12:23", - "nodeType": "VariableDeclaration", - "scope": 5043, - "src": "3698:18:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 5008, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3698:5:23", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - } - ], - "src": "3697:20:23" - }, - "returnParameters": { - "id": 5013, - "nodeType": "ParameterList", - "parameters": [], - "src": "3757:0:23" - }, - "scope": 5599, - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "public" - }, - { - "id": 5194, - "nodeType": "FunctionDefinition", - "src": "4482:1981:23", - "nodes": [], - "body": { - "id": 5193, - "nodeType": "Block", - "src": "4718:1745:23", - "nodes": [], - "statements": [ - { - "assignments": [ - 5060 - ], - "declarations": [ - { - "constant": false, - "id": 5060, - "mutability": "mutable", - "name": "pubkeyHash", - "nameLocation": "4736:10:23", - "nodeType": "VariableDeclaration", - "scope": 5193, - "src": "4728:18:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 5059, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4728:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "id": 5066, - "initialValue": { - "arguments": [ - { - "expression": { - "id": 5063, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5049, - "src": "4767:6:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PubkeyRegistrationParams_$11945_calldata_ptr", - "typeString": "struct IBLSApkRegistry.PubkeyRegistrationParams calldata" - } - }, - "id": 5064, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pubkeyG1", - "nodeType": "MemberAccess", - "referencedDeclaration": 11941, - "src": "4767:15:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_calldata_ptr", - "typeString": "struct BN254.G1Point calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_G1Point_$12956_calldata_ptr", - "typeString": "struct BN254.G1Point calldata" - } - ], - "expression": { - "id": 5061, - "name": "BN254", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13824, - "src": "4749:5:23", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_BN254_$13824_$", - "typeString": "type(library BN254)" - } - }, - "id": 5062, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "hashG1Point", - "nodeType": "MemberAccess", - "referencedDeclaration": 13612, - "src": "4749:17:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_G1Point_$12956_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (struct BN254.G1Point memory) pure returns (bytes32)" - } - }, - "id": 5065, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4749:34:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4728:55:23" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 5070, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5068, - "name": "pubkeyHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5060, - "src": "4814:10:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 5069, - "name": "ZERO_PK_HASH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5617, - "src": "4828:12:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "4814:26:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "424c5341706b52656769737472792e7265676973746572424c535075626c69634b65793a2063616e6e6f74207265676973746572207a65726f207075626b6579", - "id": 5071, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4842:66:23", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ed447b4c2dd56c7ac22a46510923652c0fb828907273e7f25b0e81454d10e401", - "typeString": "literal_string \"BLSApkRegistry.registerBLSPublicKey: cannot register zero pubkey\"" - }, - "value": "BLSApkRegistry.registerBLSPublicKey: cannot register zero pubkey" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ed447b4c2dd56c7ac22a46510923652c0fb828907273e7f25b0e81454d10e401", - "typeString": "literal_string \"BLSApkRegistry.registerBLSPublicKey: cannot register zero pubkey\"" - } - ], - "id": 5067, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "4793:7:23", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 5072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4793:125:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5073, - "nodeType": "ExpressionStatement", - "src": "4793:125:23" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 5082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "baseExpression": { - "id": 5075, - "name": "operatorToPubkeyHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5625, - "src": "4949:20:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bytes32_$", - "typeString": "mapping(address => bytes32)" - } - }, - "id": 5077, - "indexExpression": { - "id": 5076, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5046, - "src": "4970:8:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4949:30:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 5080, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4991:1:23", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5079, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4983:7:23", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes32_$", - "typeString": "type(bytes32)" - }, - "typeName": { - "id": 5078, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4983:7:23", - "typeDescriptions": {} - } - }, - "id": 5081, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4983:10:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "4949:44:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "424c5341706b52656769737472792e7265676973746572424c535075626c69634b65793a206f70657261746f7220616c72656164792072656769737465726564207075626b6579", - "id": 5083, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5007:73:23", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_23c053c8b327ffbe22eb9957f7f4786074f7b47849c714ebfb544c6ecea8e8e6", - "typeString": "literal_string \"BLSApkRegistry.registerBLSPublicKey: operator already registered pubkey\"" - }, - "value": "BLSApkRegistry.registerBLSPublicKey: operator already registered pubkey" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_23c053c8b327ffbe22eb9957f7f4786074f7b47849c714ebfb544c6ecea8e8e6", - "typeString": "literal_string \"BLSApkRegistry.registerBLSPublicKey: operator already registered pubkey\"" - } - ], - "id": 5074, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "4928:7:23", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 5084, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4928:162:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5085, - "nodeType": "ExpressionStatement", - "src": "4928:162:23" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "baseExpression": { - "id": 5087, - "name": "pubkeyHashToOperator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5630, - "src": "5121:20:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - } - }, - "id": 5089, - "indexExpression": { - "id": 5088, - "name": "pubkeyHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5060, - "src": "5142:10:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5121:32:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 5092, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5165:1:23", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5091, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5157:7:23", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 5090, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5157:7:23", - "typeDescriptions": {} - } - }, - "id": 5093, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5157:10:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5121:46:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "424c5341706b52656769737472792e7265676973746572424c535075626c69634b65793a207075626c6963206b657920616c72656164792072656769737465726564", - "id": 5095, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5181:68:23", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_0d525b6227d2ee918c161b177306a310edf3173789b25c9965abbeb6da9ad97d", - "typeString": "literal_string \"BLSApkRegistry.registerBLSPublicKey: public key already registered\"" - }, - "value": "BLSApkRegistry.registerBLSPublicKey: public key already registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_0d525b6227d2ee918c161b177306a310edf3173789b25c9965abbeb6da9ad97d", - "typeString": "literal_string \"BLSApkRegistry.registerBLSPublicKey: public key already registered\"" - } - ], - "id": 5086, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "5100:7:23", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 5096, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5100:159:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5097, - "nodeType": "ExpressionStatement", - "src": "5100:159:23" - }, - { - "assignments": [ - 5099 - ], - "declarations": [ - { - "constant": false, - "id": 5099, - "mutability": "mutable", - "name": "gamma", - "nameLocation": "5319:5:23", - "nodeType": "VariableDeclaration", - "scope": 5193, - "src": "5311:13:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5098, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5311:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 5133, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "expression": { - "expression": { - "id": 5105, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5049, - "src": "5375:6:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PubkeyRegistrationParams_$11945_calldata_ptr", - "typeString": "struct IBLSApkRegistry.PubkeyRegistrationParams calldata" - } - }, - "id": 5106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pubkeyRegistrationSignature", - "nodeType": "MemberAccess", - "referencedDeclaration": 11938, - "src": "5375:34:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_calldata_ptr", - "typeString": "struct BN254.G1Point calldata" - } - }, - "id": 5107, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "X", - "nodeType": "MemberAccess", - "referencedDeclaration": 12953, - "src": "5375:36:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "expression": { - "id": 5108, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5049, - "src": "5426:6:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PubkeyRegistrationParams_$11945_calldata_ptr", - "typeString": "struct IBLSApkRegistry.PubkeyRegistrationParams calldata" - } - }, - "id": 5109, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pubkeyRegistrationSignature", - "nodeType": "MemberAccess", - "referencedDeclaration": 11938, - "src": "5426:34:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_calldata_ptr", - "typeString": "struct BN254.G1Point calldata" - } - }, - "id": 5110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "Y", - "nodeType": "MemberAccess", - "referencedDeclaration": 12955, - "src": "5426:36:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "expression": { - "id": 5111, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5049, - "src": "5477:6:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PubkeyRegistrationParams_$11945_calldata_ptr", - "typeString": "struct IBLSApkRegistry.PubkeyRegistrationParams calldata" - } - }, - "id": 5112, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pubkeyG1", - "nodeType": "MemberAccess", - "referencedDeclaration": 11941, - "src": "5477:15:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_calldata_ptr", - "typeString": "struct BN254.G1Point calldata" - } - }, - "id": 5113, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "X", - "nodeType": "MemberAccess", - "referencedDeclaration": 12953, - "src": "5477:17:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "expression": { - "id": 5114, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5049, - "src": "5509:6:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PubkeyRegistrationParams_$11945_calldata_ptr", - "typeString": "struct IBLSApkRegistry.PubkeyRegistrationParams calldata" - } - }, - "id": 5115, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pubkeyG1", - "nodeType": "MemberAccess", - "referencedDeclaration": 11941, - "src": "5509:15:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_calldata_ptr", - "typeString": "struct BN254.G1Point calldata" - } - }, - "id": 5116, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "Y", - "nodeType": "MemberAccess", - "referencedDeclaration": 12955, - "src": "5509:17:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "expression": { - "id": 5117, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5049, - "src": "5541:6:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PubkeyRegistrationParams_$11945_calldata_ptr", - "typeString": "struct IBLSApkRegistry.PubkeyRegistrationParams calldata" - } - }, - "id": 5118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pubkeyG2", - "nodeType": "MemberAccess", - "referencedDeclaration": 11944, - "src": "5541:15:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$12965_calldata_ptr", - "typeString": "struct BN254.G2Point calldata" - } - }, - "id": 5119, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "X", - "nodeType": "MemberAccess", - "referencedDeclaration": 12960, - "src": "5541:17:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_calldata_ptr", - "typeString": "uint256[2] calldata" - } - }, - { - "expression": { - "expression": { - "id": 5120, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5049, - "src": "5573:6:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PubkeyRegistrationParams_$11945_calldata_ptr", - "typeString": "struct IBLSApkRegistry.PubkeyRegistrationParams calldata" - } - }, - "id": 5121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pubkeyG2", - "nodeType": "MemberAccess", - "referencedDeclaration": 11944, - "src": "5573:15:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$12965_calldata_ptr", - "typeString": "struct BN254.G2Point calldata" - } - }, - "id": 5122, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "Y", - "nodeType": "MemberAccess", - "referencedDeclaration": 12964, - "src": "5573:17:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_calldata_ptr", - "typeString": "uint256[2] calldata" - } - }, - { - "expression": { - "id": 5123, - "name": "pubkeyRegistrationMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5052, - "src": "5605:29:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_calldata_ptr", - "typeString": "struct BN254.G1Point calldata" - } - }, - "id": 5124, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "X", - "nodeType": "MemberAccess", - "referencedDeclaration": 12953, - "src": "5605:31:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 5125, - "name": "pubkeyRegistrationMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5052, - "src": "5651:29:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_calldata_ptr", - "typeString": "struct BN254.G1Point calldata" - } - }, - "id": 5126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "Y", - "nodeType": "MemberAccess", - "referencedDeclaration": 12955, - "src": "5651:31:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_uint256_$2_calldata_ptr", - "typeString": "uint256[2] calldata" - }, - { - "typeIdentifier": "t_array$_t_uint256_$2_calldata_ptr", - "typeString": "uint256[2] calldata" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 5103, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "5345:3:23", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 5104, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "src": "5345:16:23", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 5127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5345:347:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 5102, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "5335:9:23", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 5128, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5335:358:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 5101, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5327:7:23", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 5100, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5327:7:23", - "typeDescriptions": {} - } - }, - "id": 5129, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5327:367:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "expression": { - "id": 5130, - "name": "BN254", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13824, - "src": "5697:5:23", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_BN254_$13824_$", - "typeString": "type(library BN254)" - } - }, - "id": 5131, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "FR_MODULUS", - "nodeType": "MemberAccess", - "referencedDeclaration": 12951, - "src": "5697:16:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5327:386:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5311:402:23" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "id": 5143, - "name": "gamma", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5099, - "src": "5905:5:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "expression": { - "id": 5140, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5049, - "src": "5878:6:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PubkeyRegistrationParams_$11945_calldata_ptr", - "typeString": "struct IBLSApkRegistry.PubkeyRegistrationParams calldata" - } - }, - "id": 5141, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pubkeyG1", - "nodeType": "MemberAccess", - "referencedDeclaration": 11941, - "src": "5878:15:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_calldata_ptr", - "typeString": "struct BN254.G1Point calldata" - } - }, - "id": 5142, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "scalar_mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 13280, - "src": "5878:26:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_G1Point_$12956_memory_ptr_$_t_uint256_$returns$_t_struct$_G1Point_$12956_memory_ptr_$bound_to$_t_struct$_G1Point_$12956_memory_ptr_$", - "typeString": "function (struct BN254.G1Point memory,uint256) view returns (struct BN254.G1Point memory)" - } - }, - "id": 5144, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5878:33:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_memory_ptr", - "typeString": "struct BN254.G1Point memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_G1Point_$12956_memory_ptr", - "typeString": "struct BN254.G1Point memory" - } - ], - "expression": { - "expression": { - "id": 5137, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5049, - "src": "5838:6:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PubkeyRegistrationParams_$11945_calldata_ptr", - "typeString": "struct IBLSApkRegistry.PubkeyRegistrationParams calldata" - } - }, - "id": 5138, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pubkeyRegistrationSignature", - "nodeType": "MemberAccess", - "referencedDeclaration": 11938, - "src": "5838:34:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_calldata_ptr", - "typeString": "struct BN254.G1Point calldata" - } - }, - "id": 5139, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "plus", - "nodeType": "MemberAccess", - "referencedDeclaration": 13137, - "src": "5838:39:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_G1Point_$12956_memory_ptr_$_t_struct$_G1Point_$12956_memory_ptr_$returns$_t_struct$_G1Point_$12956_memory_ptr_$bound_to$_t_struct$_G1Point_$12956_memory_ptr_$", - "typeString": "function (struct BN254.G1Point memory,struct BN254.G1Point memory) view returns (struct BN254.G1Point memory)" - } - }, - "id": 5145, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5838:74:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_memory_ptr", - "typeString": "struct BN254.G1Point memory" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 5146, - "name": "BN254", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13824, - "src": "5926:5:23", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_BN254_$13824_$", - "typeString": "type(library BN254)" - } - }, - "id": 5147, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "negGeneratorG2", - "nodeType": "MemberAccess", - "referencedDeclaration": 13036, - "src": "5926:20:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_G2Point_$12965_memory_ptr_$", - "typeString": "function () pure returns (struct BN254.G2Point memory)" - } - }, - "id": 5148, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5926:22:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$12965_memory_ptr", - "typeString": "struct BN254.G2Point memory" - } - }, - { - "arguments": [ - { - "arguments": [ - { - "id": 5155, - "name": "gamma", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5099, - "src": "6028:5:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 5151, - "name": "BN254", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13824, - "src": "5997:5:23", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_BN254_$13824_$", - "typeString": "type(library BN254)" - } - }, - "id": 5152, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "generatorG1", - "nodeType": "MemberAccess", - "referencedDeclaration": 12977, - "src": "5997:17:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_G1Point_$12956_memory_ptr_$", - "typeString": "function () pure returns (struct BN254.G1Point memory)" - } - }, - "id": 5153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5997:19:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_memory_ptr", - "typeString": "struct BN254.G1Point memory" - } - }, - "id": 5154, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "scalar_mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 13280, - "src": "5997:30:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_G1Point_$12956_memory_ptr_$_t_uint256_$returns$_t_struct$_G1Point_$12956_memory_ptr_$bound_to$_t_struct$_G1Point_$12956_memory_ptr_$", - "typeString": "function (struct BN254.G1Point memory,uint256) view returns (struct BN254.G1Point memory)" - } - }, - "id": 5156, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5997:37:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_memory_ptr", - "typeString": "struct BN254.G1Point memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_G1Point_$12956_memory_ptr", - "typeString": "struct BN254.G1Point memory" - } - ], - "expression": { - "id": 5149, - "name": "pubkeyRegistrationMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5052, - "src": "5962:29:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_calldata_ptr", - "typeString": "struct BN254.G1Point calldata" - } - }, - "id": 5150, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "plus", - "nodeType": "MemberAccess", - "referencedDeclaration": 13137, - "src": "5962:34:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_G1Point_$12956_memory_ptr_$_t_struct$_G1Point_$12956_memory_ptr_$returns$_t_struct$_G1Point_$12956_memory_ptr_$bound_to$_t_struct$_G1Point_$12956_memory_ptr_$", - "typeString": "function (struct BN254.G1Point memory,struct BN254.G1Point memory) view returns (struct BN254.G1Point memory)" - } - }, - "id": 5157, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5962:73:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_memory_ptr", - "typeString": "struct BN254.G1Point memory" - } - }, - { - "expression": { - "id": 5158, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5049, - "src": "6049:6:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PubkeyRegistrationParams_$11945_calldata_ptr", - "typeString": "struct IBLSApkRegistry.PubkeyRegistrationParams calldata" - } - }, - "id": 5159, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pubkeyG2", - "nodeType": "MemberAccess", - "referencedDeclaration": 11944, - "src": "6049:15:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$12965_calldata_ptr", - "typeString": "struct BN254.G2Point calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_G1Point_$12956_memory_ptr", - "typeString": "struct BN254.G1Point memory" - }, - { - "typeIdentifier": "t_struct$_G2Point_$12965_memory_ptr", - "typeString": "struct BN254.G2Point memory" - }, - { - "typeIdentifier": "t_struct$_G1Point_$12956_memory_ptr", - "typeString": "struct BN254.G1Point memory" - }, - { - "typeIdentifier": "t_struct$_G2Point_$12965_calldata_ptr", - "typeString": "struct BN254.G2Point calldata" - } - ], - "expression": { - "id": 5135, - "name": "BN254", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13824, - "src": "5811:5:23", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_BN254_$13824_$", - "typeString": "type(library BN254)" - } - }, - "id": 5136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pairing", - "nodeType": "MemberAccess", - "referencedDeclaration": 13440, - "src": "5811:13:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_G1Point_$12956_memory_ptr_$_t_struct$_G2Point_$12965_memory_ptr_$_t_struct$_G1Point_$12956_memory_ptr_$_t_struct$_G2Point_$12965_memory_ptr_$returns$_t_bool_$", - "typeString": "function (struct BN254.G1Point memory,struct BN254.G2Point memory,struct BN254.G1Point memory,struct BN254.G2Point memory) view returns (bool)" - } - }, - "id": 5160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5811:263:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "424c5341706b52656769737472792e7265676973746572424c535075626c69634b65793a2065697468657220746865204731207369676e61747572652069732077726f6e672c206f7220473120616e642047322070726976617465206b657920646f206e6f74206d61746368", - "id": 5161, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6076:110:23", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4afe531e6c48ede7cdd931c82694d1dd4e31ac1ad1634c0561b1c35d1016c40f", - "typeString": "literal_string \"BLSApkRegistry.registerBLSPublicKey: either the G1 signature is wrong, or G1 and G2 private key do not match\"" - }, - "value": "BLSApkRegistry.registerBLSPublicKey: either the G1 signature is wrong, or G1 and G2 private key do not match" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_4afe531e6c48ede7cdd931c82694d1dd4e31ac1ad1634c0561b1c35d1016c40f", - "typeString": "literal_string \"BLSApkRegistry.registerBLSPublicKey: either the G1 signature is wrong, or G1 and G2 private key do not match\"" - } - ], - "id": 5134, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "5803:7:23", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 5162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5803:384:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5163, - "nodeType": "ExpressionStatement", - "src": "5803:384:23" - }, - { - "expression": { - "id": 5169, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 5164, - "name": "operatorToPubkey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5636, - "src": "6198:16:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_G1Point_$12956_storage_$", - "typeString": "mapping(address => struct BN254.G1Point storage ref)" - } - }, - "id": 5166, - "indexExpression": { - "id": 5165, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5046, - "src": "6215:8:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6198:26:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_storage", - "typeString": "struct BN254.G1Point storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 5167, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5049, - "src": "6227:6:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PubkeyRegistrationParams_$11945_calldata_ptr", - "typeString": "struct IBLSApkRegistry.PubkeyRegistrationParams calldata" - } - }, - "id": 5168, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pubkeyG1", - "nodeType": "MemberAccess", - "referencedDeclaration": 11941, - "src": "6227:15:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_calldata_ptr", - "typeString": "struct BN254.G1Point calldata" - } - }, - "src": "6198:44:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_storage", - "typeString": "struct BN254.G1Point storage ref" - } - }, - "id": 5170, - "nodeType": "ExpressionStatement", - "src": "6198:44:23" - }, - { - "expression": { - "id": 5175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 5171, - "name": "operatorToPubkeyHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5625, - "src": "6252:20:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bytes32_$", - "typeString": "mapping(address => bytes32)" - } - }, - "id": 5173, - "indexExpression": { - "id": 5172, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5046, - "src": "6273:8:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6252:30:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 5174, - "name": "pubkeyHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5060, - "src": "6285:10:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "6252:43:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 5176, - "nodeType": "ExpressionStatement", - "src": "6252:43:23" - }, - { - "expression": { - "id": 5181, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 5177, - "name": "pubkeyHashToOperator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5630, - "src": "6305:20:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - } - }, - "id": 5179, - "indexExpression": { - "id": 5178, - "name": "pubkeyHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5060, - "src": "6326:10:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6305:32:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 5180, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5046, - "src": "6340:8:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "6305:43:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5182, - "nodeType": "ExpressionStatement", - "src": "6305:43:23" - }, - { - "eventCall": { - "arguments": [ - { - "id": 5184, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5046, - "src": "6386:8:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 5185, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5049, - "src": "6396:6:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PubkeyRegistrationParams_$11945_calldata_ptr", - "typeString": "struct IBLSApkRegistry.PubkeyRegistrationParams calldata" - } - }, - "id": 5186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pubkeyG1", - "nodeType": "MemberAccess", - "referencedDeclaration": 11941, - "src": "6396:15:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_calldata_ptr", - "typeString": "struct BN254.G1Point calldata" - } - }, - { - "expression": { - "id": 5187, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5049, - "src": "6413:6:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PubkeyRegistrationParams_$11945_calldata_ptr", - "typeString": "struct IBLSApkRegistry.PubkeyRegistrationParams calldata" - } - }, - "id": 5188, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pubkeyG2", - "nodeType": "MemberAccess", - "referencedDeclaration": 11944, - "src": "6413:15:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$12965_calldata_ptr", - "typeString": "struct BN254.G2Point calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_struct$_G1Point_$12956_calldata_ptr", - "typeString": "struct BN254.G1Point calldata" - }, - { - "typeIdentifier": "t_struct$_G2Point_$12965_calldata_ptr", - "typeString": "struct BN254.G2Point calldata" - } - ], - "id": 5183, - "name": "NewPubkeyRegistration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11956, - "src": "6364:21:23", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_struct$_G1Point_$12956_memory_ptr_$_t_struct$_G2Point_$12965_memory_ptr_$returns$__$", - "typeString": "function (address,struct BN254.G1Point memory,struct BN254.G2Point memory)" - } - }, - "id": 5189, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6364:65:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5190, - "nodeType": "EmitStatement", - "src": "6359:70:23" - }, - { - "expression": { - "id": 5191, - "name": "pubkeyHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5060, - "src": "6446:10:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 5058, - "id": 5192, - "nodeType": "Return", - "src": "6439:17:23" - } - ] - }, - "baseFunctions": [ - 12020 - ], - "documentation": { - "id": 5044, - "nodeType": "StructuredDocumentation", - "src": "4070:407:23", - "text": " @notice Called by the RegistryCoordinator register an operator as the owner of a BLS public key.\n @param operator is the operator for whom the key is being registered\n @param params contains the G1 & G2 public keys of the operator, and a signature proving their ownership\n @param pubkeyRegistrationMessageHash is a hash that the operator must sign to prove key ownership" - }, - "functionSelector": "bf79ce58", - "implemented": true, - "kind": "function", - "modifiers": [ + "name": "X", + "type": "uint256[2]", + "internalType": "uint256[2]" + }, { - "id": 5055, - "kind": "modifierInvocation", - "modifierName": { - "id": 5054, - "name": "onlyRegistryCoordinator", - "nodeType": "IdentifierPath", - "referencedDeclaration": 4933, - "src": "4665:23:23" - }, - "nodeType": "ModifierInvocation", - "src": "4665:23:23" + "name": "Y", + "type": "uint256[2]", + "internalType": "uint256[2]" } - ], - "name": "registerBLSPublicKey", - "nameLocation": "4491:20:23", - "parameters": { - "id": 5053, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5046, - "mutability": "mutable", - "name": "operator", - "nameLocation": "4529:8:23", - "nodeType": "VariableDeclaration", - "scope": 5194, - "src": "4521:16:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5045, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4521:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5049, - "mutability": "mutable", - "name": "params", - "nameLocation": "4581:6:23", - "nodeType": "VariableDeclaration", - "scope": 5194, - "src": "4547:40:23", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PubkeyRegistrationParams_$11945_calldata_ptr", - "typeString": "struct IBLSApkRegistry.PubkeyRegistrationParams" - }, - "typeName": { - "id": 5048, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 5047, - "name": "PubkeyRegistrationParams", - "nodeType": "IdentifierPath", - "referencedDeclaration": 11945, - "src": "4547:24:23" - }, - "referencedDeclaration": 11945, - "src": "4547:24:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PubkeyRegistrationParams_$11945_storage_ptr", - "typeString": "struct IBLSApkRegistry.PubkeyRegistrationParams" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5052, - "mutability": "mutable", - "name": "pubkeyRegistrationMessageHash", - "nameLocation": "4620:29:23", - "nodeType": "VariableDeclaration", - "scope": 5194, - "src": "4597:52:23", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_calldata_ptr", - "typeString": "struct BN254.G1Point" - }, - "typeName": { - "id": 5051, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 5050, - "name": "BN254.G1Point", - "nodeType": "IdentifierPath", - "referencedDeclaration": 12956, - "src": "4597:13:23" - }, - "referencedDeclaration": 12956, - "src": "4597:13:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_storage_ptr", - "typeString": "struct BN254.G1Point" - } - }, - "visibility": "internal" - } - ], - "src": "4511:144:23" - }, - "returnParameters": { - "id": 5058, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5057, - "mutability": "mutable", - "name": "operatorId", - "nameLocation": "4706:10:23", - "nodeType": "VariableDeclaration", - "scope": 5194, - "src": "4698:18:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 5056, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4698:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "4697:20:23" - }, - "scope": 5599, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 5323, - "nodeType": "FunctionDefinition", - "src": "6687:1470:23", - "nodes": [], - "body": { - "id": 5322, - "nodeType": "Block", - "src": "6785:1372:23", - "nodes": [], - "statements": [ - { - "assignments": [ - 5206 - ], - "declarations": [ - { - "constant": false, - "id": 5206, - "mutability": "mutable", - "name": "newApk", - "nameLocation": "6816:6:23", - "nodeType": "VariableDeclaration", - "scope": 5322, - "src": "6795:27:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_memory_ptr", - "typeString": "struct BN254.G1Point" - }, - "typeName": { - "id": 5205, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 5204, - "name": "BN254.G1Point", - "nodeType": "IdentifierPath", - "referencedDeclaration": 12956, - "src": "6795:13:23" - }, - "referencedDeclaration": 12956, - "src": "6795:13:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_storage_ptr", - "typeString": "struct BN254.G1Point" - } - }, - "visibility": "internal" - } - ], - "id": 5207, - "nodeType": "VariableDeclarationStatement", - "src": "6795:27:23" - }, - { - "body": { - "id": 5320, - "nodeType": "Block", - "src": "6884:1267:23", - "statements": [ - { - "assignments": [ - 5220 - ], - "declarations": [ - { - "constant": false, - "id": 5220, - "mutability": "mutable", - "name": "quorumNumber", - "nameLocation": "6965:12:23", - "nodeType": "VariableDeclaration", - "scope": 5320, - "src": "6959:18:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 5219, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "6959:5:23", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - } - ], - "id": 5227, - "initialValue": { - "arguments": [ - { - "baseExpression": { - "id": 5223, - "name": "quorumNumbers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5196, - "src": "6986:13:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 5225, - "indexExpression": { - "id": 5224, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5209, - "src": "7000:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6986:16:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - ], - "id": 5222, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6980:5:23", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - }, - "typeName": { - "id": 5221, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "6980:5:23", - "typeDescriptions": {} - } - }, - "id": 5226, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6980:23:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6959:44:23" - }, - { - "assignments": [ - 5229 - ], - "declarations": [ - { - "constant": false, - "id": 5229, - "mutability": "mutable", - "name": "historyLength", - "nameLocation": "7025:13:23", - "nodeType": "VariableDeclaration", - "scope": 5320, - "src": "7017:21:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5228, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7017:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 5234, - "initialValue": { - "expression": { - "baseExpression": { - "id": 5230, - "name": "apkHistory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5643, - "src": "7041:10:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint8_$_t_array$_t_struct$_ApkUpdate_$11935_storage_$dyn_storage_$", - "typeString": "mapping(uint8 => struct IBLSApkRegistry.ApkUpdate storage ref[] storage ref)" - } - }, - "id": 5232, - "indexExpression": { - "id": 5231, - "name": "quorumNumber", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5220, - "src": "7052:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7041:24:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ApkUpdate_$11935_storage_$dyn_storage", - "typeString": "struct IBLSApkRegistry.ApkUpdate storage ref[] storage ref" - } - }, - "id": 5233, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "src": "7041:31:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7017:55:23" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5236, - "name": "historyLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5229, - "src": "7094:13:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "hexValue": "30", - "id": 5237, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7111:1:23", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7094:18:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "424c5341706b52656769737472792e5f70726f6365737351756f72756d41706b5570646174653a2071756f72756d20646f6573206e6f74206578697374", - "id": 5239, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7114:63:23", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_6363c2eebb1a1f4e68ad36bce6887804430b1d59b8937d47b5ad802b6a26b784", - "typeString": "literal_string \"BLSApkRegistry._processQuorumApkUpdate: quorum does not exist\"" - }, - "value": "BLSApkRegistry._processQuorumApkUpdate: quorum does not exist" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_6363c2eebb1a1f4e68ad36bce6887804430b1d59b8937d47b5ad802b6a26b784", - "typeString": "literal_string \"BLSApkRegistry._processQuorumApkUpdate: quorum does not exist\"" - } - ], - "id": 5235, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "7086:7:23", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 5240, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7086:92:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5241, - "nodeType": "ExpressionStatement", - "src": "7086:92:23" - }, - { - "expression": { - "id": 5249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5242, - "name": "newApk", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5206, - "src": "7252:6:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_memory_ptr", - "typeString": "struct BN254.G1Point memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 5247, - "name": "point", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5199, - "src": "7291:5:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_memory_ptr", - "typeString": "struct BN254.G1Point memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_G1Point_$12956_memory_ptr", - "typeString": "struct BN254.G1Point memory" - } - ], - "expression": { - "baseExpression": { - "id": 5243, - "name": "currentApk", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5649, - "src": "7261:10:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint8_$_t_struct$_G1Point_$12956_storage_$", - "typeString": "mapping(uint8 => struct BN254.G1Point storage ref)" - } - }, - "id": 5245, - "indexExpression": { - "id": 5244, - "name": "quorumNumber", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5220, - "src": "7272:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7261:24:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_storage", - "typeString": "struct BN254.G1Point storage ref" - } - }, - "id": 5246, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "plus", - "nodeType": "MemberAccess", - "referencedDeclaration": 13137, - "src": "7261:29:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_G1Point_$12956_memory_ptr_$_t_struct$_G1Point_$12956_memory_ptr_$returns$_t_struct$_G1Point_$12956_memory_ptr_$bound_to$_t_struct$_G1Point_$12956_memory_ptr_$", - "typeString": "function (struct BN254.G1Point memory,struct BN254.G1Point memory) view returns (struct BN254.G1Point memory)" - } - }, - "id": 5248, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7261:36:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_memory_ptr", - "typeString": "struct BN254.G1Point memory" - } - }, - "src": "7252:45:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_memory_ptr", - "typeString": "struct BN254.G1Point memory" - } - }, - "id": 5250, - "nodeType": "ExpressionStatement", - "src": "7252:45:23" - }, - { - "expression": { - "id": 5255, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 5251, - "name": "currentApk", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5649, - "src": "7311:10:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint8_$_t_struct$_G1Point_$12956_storage_$", - "typeString": "mapping(uint8 => struct BN254.G1Point storage ref)" - } - }, - "id": 5253, - "indexExpression": { - "id": 5252, - "name": "quorumNumber", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5220, - "src": "7322:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7311:24:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_storage", - "typeString": "struct BN254.G1Point storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 5254, - "name": "newApk", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5206, - "src": "7338:6:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_memory_ptr", - "typeString": "struct BN254.G1Point memory" - } - }, - "src": "7311:33:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_storage", - "typeString": "struct BN254.G1Point storage ref" - } - }, - "id": 5256, - "nodeType": "ExpressionStatement", - "src": "7311:33:23" - }, - { - "assignments": [ - 5258 - ], - "declarations": [ - { - "constant": false, - "id": 5258, - "mutability": "mutable", - "name": "newApkHash", - "nameLocation": "7366:10:23", - "nodeType": "VariableDeclaration", - "scope": 5320, - "src": "7358:18:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes24", - "typeString": "bytes24" - }, - "typeName": { - "id": 5257, - "name": "bytes24", - "nodeType": "ElementaryTypeName", - "src": "7358:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes24", - "typeString": "bytes24" - } - }, - "visibility": "internal" - } - ], - "id": 5266, - "initialValue": { - "arguments": [ - { - "arguments": [ - { - "id": 5263, - "name": "newApk", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5206, - "src": "7405:6:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_memory_ptr", - "typeString": "struct BN254.G1Point memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_G1Point_$12956_memory_ptr", - "typeString": "struct BN254.G1Point memory" - } - ], - "expression": { - "id": 5261, - "name": "BN254", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13824, - "src": "7387:5:23", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_BN254_$13824_$", - "typeString": "type(library BN254)" - } - }, - "id": 5262, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "hashG1Point", - "nodeType": "MemberAccess", - "referencedDeclaration": 13612, - "src": "7387:17:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_G1Point_$12956_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (struct BN254.G1Point memory) pure returns (bytes32)" - } - }, - "id": 5264, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7387:25:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 5260, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7379:7:23", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes24_$", - "typeString": "type(bytes24)" - }, - "typeName": { - "id": 5259, - "name": "bytes24", - "nodeType": "ElementaryTypeName", - "src": "7379:7:23", - "typeDescriptions": {} - } - }, - "id": 5265, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7379:34:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes24", - "typeString": "bytes24" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7358:55:23" - }, - { - "assignments": [ - 5269 - ], - "declarations": [ - { - "constant": false, - "id": 5269, - "mutability": "mutable", - "name": "lastUpdate", - "nameLocation": "7629:10:23", - "nodeType": "VariableDeclaration", - "scope": 5320, - "src": "7611:28:23", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ApkUpdate_$11935_storage_ptr", - "typeString": "struct IBLSApkRegistry.ApkUpdate" - }, - "typeName": { - "id": 5268, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 5267, - "name": "ApkUpdate", - "nodeType": "IdentifierPath", - "referencedDeclaration": 11935, - "src": "7611:9:23" - }, - "referencedDeclaration": 11935, - "src": "7611:9:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ApkUpdate_$11935_storage_ptr", - "typeString": "struct IBLSApkRegistry.ApkUpdate" - } - }, - "visibility": "internal" - } - ], - "id": 5277, - "initialValue": { - "baseExpression": { - "baseExpression": { - "id": 5270, - "name": "apkHistory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5643, - "src": "7642:10:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint8_$_t_array$_t_struct$_ApkUpdate_$11935_storage_$dyn_storage_$", - "typeString": "mapping(uint8 => struct IBLSApkRegistry.ApkUpdate storage ref[] storage ref)" - } - }, - "id": 5272, - "indexExpression": { - "id": 5271, - "name": "quorumNumber", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5220, - "src": "7653:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7642:24:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ApkUpdate_$11935_storage_$dyn_storage", - "typeString": "struct IBLSApkRegistry.ApkUpdate storage ref[] storage ref" - } - }, - "id": 5276, - "indexExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5275, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5273, - "name": "historyLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5229, - "src": "7667:13:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "hexValue": "31", - "id": 5274, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7683:1:23", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "7667:17:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7642:43:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ApkUpdate_$11935_storage", - "typeString": "struct IBLSApkRegistry.ApkUpdate storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7611:74:23" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 5285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 5278, - "name": "lastUpdate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5269, - "src": "7703:10:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ApkUpdate_$11935_storage_ptr", - "typeString": "struct IBLSApkRegistry.ApkUpdate storage pointer" - } - }, - "id": 5279, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "updateBlockNumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 11932, - "src": "7703:28:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "arguments": [ - { - "expression": { - "id": 5282, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "7742:5:23", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 5283, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "src": "7742:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5281, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7735:6:23", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - }, - "typeName": { - "id": 5280, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "7735:6:23", - "typeDescriptions": {} - } - }, - "id": 5284, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7735:20:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "7703:52:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 5318, - "nodeType": "Block", - "src": "7827:314:23", - "statements": [ - { - "expression": { - "id": 5301, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 5293, - "name": "lastUpdate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5269, - "src": "7845:10:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ApkUpdate_$11935_storage_ptr", - "typeString": "struct IBLSApkRegistry.ApkUpdate storage pointer" - } - }, - "id": 5295, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "nextUpdateBlockNumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 11934, - "src": "7845:32:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "expression": { - "id": 5298, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "7887:5:23", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 5299, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "src": "7887:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5297, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7880:6:23", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - }, - "typeName": { - "id": 5296, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "7880:6:23", - "typeDescriptions": {} - } - }, - "id": 5300, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7880:20:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "7845:55:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 5302, - "nodeType": "ExpressionStatement", - "src": "7845:55:23" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 5308, - "name": "newApkHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5258, - "src": "7989:10:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes24", - "typeString": "bytes24" - } - }, - { - "arguments": [ - { - "expression": { - "id": 5311, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "8047:5:23", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 5312, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "src": "8047:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5310, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8040:6:23", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - }, - "typeName": { - "id": 5309, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "8040:6:23", - "typeDescriptions": {} - } - }, - "id": 5313, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8040:20:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "hexValue": "30", - "id": 5314, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8105:1:23", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes24", - "typeString": "bytes24" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5307, - "name": "ApkUpdate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11935, - "src": "7948:9:23", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_ApkUpdate_$11935_storage_ptr_$", - "typeString": "type(struct IBLSApkRegistry.ApkUpdate storage pointer)" - } - }, - "id": 5315, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "apkHash", - "updateBlockNumber", - "nextUpdateBlockNumber" - ], - "nodeType": "FunctionCall", - "src": "7948:177:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_ApkUpdate_$11935_memory_ptr", - "typeString": "struct IBLSApkRegistry.ApkUpdate memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ApkUpdate_$11935_memory_ptr", - "typeString": "struct IBLSApkRegistry.ApkUpdate memory" - } - ], - "expression": { - "baseExpression": { - "id": 5303, - "name": "apkHistory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5643, - "src": "7918:10:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint8_$_t_array$_t_struct$_ApkUpdate_$11935_storage_$dyn_storage_$", - "typeString": "mapping(uint8 => struct IBLSApkRegistry.ApkUpdate storage ref[] storage ref)" - } - }, - "id": 5305, - "indexExpression": { - "id": 5304, - "name": "quorumNumber", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5220, - "src": "7929:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7918:24:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ApkUpdate_$11935_storage_$dyn_storage", - "typeString": "struct IBLSApkRegistry.ApkUpdate storage ref[] storage ref" - } - }, - "id": 5306, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "src": "7918:29:23", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_struct$_ApkUpdate_$11935_storage_$dyn_storage_ptr_$_t_struct$_ApkUpdate_$11935_storage_$returns$__$bound_to$_t_array$_t_struct$_ApkUpdate_$11935_storage_$dyn_storage_ptr_$", - "typeString": "function (struct IBLSApkRegistry.ApkUpdate storage ref[] storage pointer,struct IBLSApkRegistry.ApkUpdate storage ref)" - } - }, - "id": 5316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7918:208:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5317, - "nodeType": "ExpressionStatement", - "src": "7918:208:23" - } - ] - }, - "id": 5319, - "nodeType": "IfStatement", - "src": "7699:442:23", - "trueBody": { - "id": 5292, - "nodeType": "Block", - "src": "7757:64:23", - "statements": [ - { - "expression": { - "id": 5290, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 5286, - "name": "lastUpdate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5269, - "src": "7775:10:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ApkUpdate_$11935_storage_ptr", - "typeString": "struct IBLSApkRegistry.ApkUpdate storage pointer" - } - }, - "id": 5288, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "apkHash", - "nodeType": "MemberAccess", - "referencedDeclaration": 11930, - "src": "7775:18:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes24", - "typeString": "bytes24" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 5289, - "name": "newApkHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5258, - "src": "7796:10:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes24", - "typeString": "bytes24" - } - }, - "src": "7775:31:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes24", - "typeString": "bytes24" - } - }, - "id": 5291, - "nodeType": "ExpressionStatement", - "src": "7775:31:23" - } - ] - } - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5212, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5209, - "src": "6853:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "expression": { - "id": 5213, - "name": "quorumNumbers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5196, - "src": "6857:13:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 5214, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "src": "6857:20:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6853:24:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5321, - "initializationExpression": { - "assignments": [ - 5209 - ], - "declarations": [ - { - "constant": false, - "id": 5209, - "mutability": "mutable", - "name": "i", - "nameLocation": "6846:1:23", - "nodeType": "VariableDeclaration", - "scope": 5321, - "src": "6838:9:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5208, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6838:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 5211, - "initialValue": { - "hexValue": "30", - "id": 5210, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6850:1:23", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "6838:13:23" - }, - "loopExpression": { - "expression": { - "id": 5217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "6879:3:23", - "subExpression": { - "id": 5216, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5209, - "src": "6879:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5218, - "nodeType": "ExpressionStatement", - "src": "6879:3:23" - }, - "nodeType": "ForStatement", - "src": "6833:1318:23" - } - ] - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_processQuorumApkUpdate", - "nameLocation": "6696:23:23", - "parameters": { - "id": 5200, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5196, - "mutability": "mutable", - "name": "quorumNumbers", - "nameLocation": "6733:13:23", - "nodeType": "VariableDeclaration", - "scope": 5323, - "src": "6720:26:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5195, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6720:5:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5199, - "mutability": "mutable", - "name": "point", - "nameLocation": "6769:5:23", - "nodeType": "VariableDeclaration", - "scope": 5323, - "src": "6748:26:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_memory_ptr", - "typeString": "struct BN254.G1Point" - }, - "typeName": { - "id": 5198, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 5197, - "name": "BN254.G1Point", - "nodeType": "IdentifierPath", - "referencedDeclaration": 12956, - "src": "6748:13:23" - }, - "referencedDeclaration": 12956, - "src": "6748:13:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_storage_ptr", - "typeString": "struct BN254.G1Point" - } - }, - "visibility": "internal" - } - ], - "src": "6719:56:23" - }, - "returnParameters": { - "id": 5201, - "nodeType": "ParameterList", - "parameters": [], - "src": "6785:0:23" - }, - "scope": 5599, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "id": 5364, - "nodeType": "FunctionDefinition", - "src": "8527:423:23", - "nodes": [], - "body": { - "id": 5363, - "nodeType": "Block", - "src": "8626:324:23", - "nodes": [], - "statements": [ - { - "assignments": [ - 5338 - ], - "declarations": [ - { - "constant": false, - "id": 5338, - "mutability": "mutable", - "name": "pubkey", - "nameLocation": "8657:6:23", - "nodeType": "VariableDeclaration", - "scope": 5363, - "src": "8636:27:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_memory_ptr", - "typeString": "struct BN254.G1Point" - }, - "typeName": { - "id": 5337, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 5336, - "name": "BN254.G1Point", - "nodeType": "IdentifierPath", - "referencedDeclaration": 12956, - "src": "8636:13:23" - }, - "referencedDeclaration": 12956, - "src": "8636:13:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_storage_ptr", - "typeString": "struct BN254.G1Point" - } - }, - "visibility": "internal" - } - ], - "id": 5342, - "initialValue": { - "baseExpression": { - "id": 5339, - "name": "operatorToPubkey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5636, - "src": "8666:16:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_G1Point_$12956_storage_$", - "typeString": "mapping(address => struct BN254.G1Point storage ref)" - } - }, - "id": 5341, - "indexExpression": { - "id": 5340, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5326, - "src": "8683:8:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8666:26:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_storage", - "typeString": "struct BN254.G1Point storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8636:56:23" - }, - { - "assignments": [ - 5344 - ], - "declarations": [ - { - "constant": false, - "id": 5344, - "mutability": "mutable", - "name": "pubkeyHash", - "nameLocation": "8710:10:23", - "nodeType": "VariableDeclaration", - "scope": 5363, - "src": "8702:18:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 5343, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "8702:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "id": 5348, - "initialValue": { - "baseExpression": { - "id": 5345, - "name": "operatorToPubkeyHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5625, - "src": "8723:20:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bytes32_$", - "typeString": "mapping(address => bytes32)" - } - }, - "id": 5347, - "indexExpression": { - "id": 5346, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5326, - "src": "8744:8:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8723:30:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8702:51:23" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 5355, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5350, - "name": "pubkeyHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5344, - "src": "8785:10:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 5353, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8807:1:23", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5352, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8799:7:23", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes32_$", - "typeString": "type(bytes32)" - }, - "typeName": { - "id": 5351, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "8799:7:23", - "typeDescriptions": {} - } - }, - "id": 5354, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8799:10:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "8785:24:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "424c5341706b52656769737472792e676574526567697374657265645075626b65793a206f70657261746f72206973206e6f742072656769737465726564", - "id": 5356, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8823:64:23", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1532255711f834881343d5d6ae29f70e8a47f1b522b97a0920b98302840dd1af", - "typeString": "literal_string \"BLSApkRegistry.getRegisteredPubkey: operator is not registered\"" - }, - "value": "BLSApkRegistry.getRegisteredPubkey: operator is not registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_1532255711f834881343d5d6ae29f70e8a47f1b522b97a0920b98302840dd1af", - "typeString": "literal_string \"BLSApkRegistry.getRegisteredPubkey: operator is not registered\"" - } - ], - "id": 5349, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "8764:7:23", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 5357, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8764:133:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5358, - "nodeType": "ExpressionStatement", - "src": "8764:133:23" - }, - { - "expression": { - "components": [ - { - "id": 5359, - "name": "pubkey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5338, - "src": "8924:6:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_memory_ptr", - "typeString": "struct BN254.G1Point memory" - } - }, - { - "id": 5360, - "name": "pubkeyHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5344, - "src": "8932:10:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 5361, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "8923:20:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_struct$_G1Point_$12956_memory_ptr_$_t_bytes32_$", - "typeString": "tuple(struct BN254.G1Point memory,bytes32)" - } - }, - "functionReturnParameters": 5333, - "id": 5362, - "nodeType": "Return", - "src": "8916:27:23" - } - ] - }, - "baseFunctions": [ - 12031 - ], - "documentation": { - "id": 5324, - "nodeType": "StructuredDocumentation", - "src": "8376:146:23", - "text": " @notice Returns the pubkey and pubkey hash of an operator\n @dev Reverts if the operator has not registered a valid pubkey" - }, - "functionSelector": "7ff81a87", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getRegisteredPubkey", - "nameLocation": "8536:19:23", - "parameters": { - "id": 5327, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5326, - "mutability": "mutable", - "name": "operator", - "nameLocation": "8564:8:23", - "nodeType": "VariableDeclaration", - "scope": 5364, - "src": "8556:16:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5325, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8556:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "8555:18:23" - }, - "returnParameters": { - "id": 5333, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5330, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5364, - "src": "8595:20:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_memory_ptr", - "typeString": "struct BN254.G1Point" - }, - "typeName": { - "id": 5329, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 5328, - "name": "BN254.G1Point", - "nodeType": "IdentifierPath", - "referencedDeclaration": 12956, - "src": "8595:13:23" - }, - "referencedDeclaration": 12956, - "src": "8595:13:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_storage_ptr", - "typeString": "struct BN254.G1Point" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5332, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5364, - "src": "8617:7:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 5331, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "8617:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "8594:31:23" - }, - "scope": 5599, - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "id": 5477, - "nodeType": "FunctionDefinition", - "src": "9154:1037:23", - "nodes": [], - "body": { - "id": 5476, - "nodeType": "Block", - "src": "9303:888:23", - "nodes": [], - "statements": [ - { - "assignments": [ - 5379 - ], - "declarations": [ - { - "constant": false, - "id": 5379, - "mutability": "mutable", - "name": "indices", - "nameLocation": "9329:7:23", - "nodeType": "VariableDeclaration", - "scope": 5476, - "src": "9313:23:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[]" - }, - "typeName": { - "baseType": { - "id": 5377, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "9313:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 5378, - "nodeType": "ArrayTypeName", - "src": "9313:8:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", - "typeString": "uint32[]" - } - }, - "visibility": "internal" - } - ], - "id": 5386, - "initialValue": { - "arguments": [ - { - "expression": { - "id": 5383, - "name": "quorumNumbers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5367, - "src": "9352:13:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "id": 5384, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "src": "9352:20:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5382, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "9339:12:23", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint32_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (uint32[] memory)" - }, - "typeName": { - "baseType": { - "id": 5380, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "9343:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 5381, - "nodeType": "ArrayTypeName", - "src": "9343:8:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", - "typeString": "uint32[]" - } - } - }, - "id": 5385, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9339:34:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9313:60:23" - }, - { - "body": { - "id": 5472, - "nodeType": "Block", - "src": "9431:730:23", - "statements": [ - { - "assignments": [ - 5399 - ], - "declarations": [ - { - "constant": false, - "id": 5399, - "mutability": "mutable", - "name": "quorumNumber", - "nameLocation": "9451:12:23", - "nodeType": "VariableDeclaration", - "scope": 5472, - "src": "9445:18:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 5398, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "9445:5:23", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - } - ], - "id": 5406, - "initialValue": { - "arguments": [ - { - "baseExpression": { - "id": 5402, - "name": "quorumNumbers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5367, - "src": "9472:13:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "id": 5404, - "indexExpression": { - "id": 5403, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5388, - "src": "9486:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9472:16:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - ], - "id": 5401, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9466:5:23", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - }, - "typeName": { - "id": 5400, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "9466:5:23", - "typeDescriptions": {} - } - }, - "id": 5405, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9466:23:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9445:44:23" - }, - { - "assignments": [ - 5408 - ], - "declarations": [ - { - "constant": false, - "id": 5408, - "mutability": "mutable", - "name": "quorumApkUpdatesLength", - "nameLocation": "9510:22:23", - "nodeType": "VariableDeclaration", - "scope": 5472, - "src": "9503:29:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 5407, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "9503:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "id": 5416, - "initialValue": { - "arguments": [ - { - "expression": { - "baseExpression": { - "id": 5411, - "name": "apkHistory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5643, - "src": "9542:10:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint8_$_t_array$_t_struct$_ApkUpdate_$11935_storage_$dyn_storage_$", - "typeString": "mapping(uint8 => struct IBLSApkRegistry.ApkUpdate storage ref[] storage ref)" - } - }, - "id": 5413, - "indexExpression": { - "id": 5412, - "name": "quorumNumber", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5399, - "src": "9553:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9542:24:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ApkUpdate_$11935_storage_$dyn_storage", - "typeString": "struct IBLSApkRegistry.ApkUpdate storage ref[] storage ref" - } - }, - "id": 5414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "src": "9542:31:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5410, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9535:6:23", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - }, - "typeName": { - "id": 5409, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "9535:6:23", - "typeDescriptions": {} - } - }, - "id": 5415, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9535:39:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9503:71:23" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5428, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 5419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5417, - "name": "quorumApkUpdatesLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5408, - "src": "9593:22:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 5418, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9619:1:23", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "9593:27:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5427, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5420, - "name": "blockNumber", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5369, - "src": "9624:11:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "expression": { - "baseExpression": { - "baseExpression": { - "id": 5421, - "name": "apkHistory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5643, - "src": "9638:10:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint8_$_t_array$_t_struct$_ApkUpdate_$11935_storage_$dyn_storage_$", - "typeString": "mapping(uint8 => struct IBLSApkRegistry.ApkUpdate storage ref[] storage ref)" - } - }, - "id": 5423, - "indexExpression": { - "id": 5422, - "name": "quorumNumber", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5399, - "src": "9649:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9638:24:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ApkUpdate_$11935_storage_$dyn_storage", - "typeString": "struct IBLSApkRegistry.ApkUpdate storage ref[] storage ref" - } - }, - "id": 5425, - "indexExpression": { - "hexValue": "30", - "id": 5424, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9663:1:23", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9638:27:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ApkUpdate_$11935_storage", - "typeString": "struct IBLSApkRegistry.ApkUpdate storage ref" - } - }, - "id": 5426, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "updateBlockNumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 11932, - "src": "9638:45:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "9624:59:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "9593:90:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5434, - "nodeType": "IfStatement", - "src": "9589:258:23", - "trueBody": { - "id": 5433, - "nodeType": "Block", - "src": "9685:162:23", - "statements": [ - { - "expression": { - "arguments": [ - { - "hexValue": "424c5341706b52656769737472792e67657441706b496e64696365734174426c6f636b4e756d6265723a20626c6f636b4e756d626572206973206265666f72652074686520666972737420757064617465", - "id": 5430, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9731:83:23", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_0ef1cda09ad228a2f9a4d64a58c6501e50fe1a0a0653c6537ea158bc6d790445", - "typeString": "literal_string \"BLSApkRegistry.getApkIndicesAtBlockNumber: blockNumber is before the first update\"" - }, - "value": "BLSApkRegistry.getApkIndicesAtBlockNumber: blockNumber is before the first update" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_0ef1cda09ad228a2f9a4d64a58c6501e50fe1a0a0653c6537ea158bc6d790445", - "typeString": "literal_string \"BLSApkRegistry.getApkIndicesAtBlockNumber: blockNumber is before the first update\"" - } - ], - "id": 5429, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -19, - -19 - ], - "referencedDeclaration": -19, - "src": "9703:6:23", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 5431, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9703:129:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5432, - "nodeType": "ExpressionStatement", - "src": "9703:129:23" - } - ] - } - }, - { - "body": { - "id": 5470, - "nodeType": "Block", - "src": "9913:238:23", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5456, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "baseExpression": { - "baseExpression": { - "id": 5445, - "name": "apkHistory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5643, - "src": "9935:10:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint8_$_t_array$_t_struct$_ApkUpdate_$11935_storage_$dyn_storage_$", - "typeString": "mapping(uint8 => struct IBLSApkRegistry.ApkUpdate storage ref[] storage ref)" - } - }, - "id": 5447, - "indexExpression": { - "id": 5446, - "name": "quorumNumber", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5399, - "src": "9946:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9935:24:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ApkUpdate_$11935_storage_$dyn_storage", - "typeString": "struct IBLSApkRegistry.ApkUpdate storage ref[] storage ref" - } - }, - "id": 5453, - "indexExpression": { - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 5452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 5450, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5448, - "name": "quorumApkUpdatesLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5408, - "src": "9960:22:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 5449, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5436, - "src": "9985:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "9960:26:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "hexValue": "31", - "id": 5451, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9989:1:23", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9960:30:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9935:56:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ApkUpdate_$11935_storage", - "typeString": "struct IBLSApkRegistry.ApkUpdate storage ref" - } - }, - "id": 5454, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "updateBlockNumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 11932, - "src": "9935:74:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "id": 5455, - "name": "blockNumber", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5369, - "src": "10013:11:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9935:89:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5469, - "nodeType": "IfStatement", - "src": "9931:206:23", - "trueBody": { - "id": 5468, - "nodeType": "Block", - "src": "10026:111:23", - "statements": [ - { - "expression": { - "id": 5465, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 5457, - "name": "indices", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5379, - "src": "10048:7:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[] memory" - } - }, - "id": 5459, - "indexExpression": { - "id": 5458, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5388, - "src": "10056:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10048:10:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 5464, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 5462, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5460, - "name": "quorumApkUpdatesLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5408, - "src": "10061:22:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 5461, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5436, - "src": "10086:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "10061:26:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "hexValue": "31", - "id": 5463, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10090:1:23", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "10061:30:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "10048:43:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 5466, - "nodeType": "ExpressionStatement", - "src": "10048:43:23" - }, - { - "id": 5467, - "nodeType": "Break", - "src": "10113:5:23" - } - ] - } - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 5441, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5439, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5436, - "src": "9880:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 5440, - "name": "quorumApkUpdatesLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5408, - "src": "9884:22:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "9880:26:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5471, - "initializationExpression": { - "assignments": [ - 5436 - ], - "declarations": [ - { - "constant": false, - "id": 5436, - "mutability": "mutable", - "name": "j", - "nameLocation": "9873:1:23", - "nodeType": "VariableDeclaration", - "scope": 5471, - "src": "9866:8:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 5435, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "9866:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "id": 5438, - "initialValue": { - "hexValue": "30", - "id": 5437, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9877:1:23", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "9866:12:23" - }, - "loopExpression": { - "expression": { - "id": 5443, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "9908:3:23", - "subExpression": { - "id": 5442, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5436, - "src": "9908:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 5444, - "nodeType": "ExpressionStatement", - "src": "9908:3:23" - }, - "nodeType": "ForStatement", - "src": "9861:290:23" - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5394, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5391, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5388, - "src": "9400:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "expression": { - "id": 5392, - "name": "quorumNumbers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5367, - "src": "9404:13:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "id": 5393, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "src": "9404:20:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9400:24:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5473, - "initializationExpression": { - "assignments": [ - 5388 - ], - "declarations": [ - { - "constant": false, - "id": 5388, - "mutability": "mutable", - "name": "i", - "nameLocation": "9393:1:23", - "nodeType": "VariableDeclaration", - "scope": 5473, - "src": "9388:6:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5387, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9388:4:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 5390, - "initialValue": { - "hexValue": "30", - "id": 5389, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9397:1:23", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "9388:10:23" - }, - "loopExpression": { - "expression": { - "id": 5396, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "9426:3:23", - "subExpression": { - "id": 5395, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5388, - "src": "9426:1:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5397, - "nodeType": "ExpressionStatement", - "src": "9426:3:23" - }, - "nodeType": "ForStatement", - "src": "9383:778:23" - }, - { - "expression": { - "id": 5474, - "name": "indices", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5379, - "src": "10177:7:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[] memory" - } - }, - "functionReturnParameters": 5374, - "id": 5475, - "nodeType": "Return", - "src": "10170:14:23" - } - ] - }, - "baseFunctions": [ - 12051 - ], - "documentation": { - "id": 5365, - "nodeType": "StructuredDocumentation", - "src": "8956:193:23", - "text": " @notice Returns the indices of the quorumApks index at `blockNumber` for the provided `quorumNumbers`\n @dev Returns the current indices if `blockNumber >= block.number`" - }, - "functionSelector": "d5254a8c", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getApkIndicesAtBlockNumber", - "nameLocation": "9163:26:23", - "parameters": { - "id": 5370, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5367, - "mutability": "mutable", - "name": "quorumNumbers", - "nameLocation": "9214:13:23", - "nodeType": "VariableDeclaration", - "scope": 5477, - "src": "9199:28:23", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5366, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "9199:5:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5369, - "mutability": "mutable", - "name": "blockNumber", - "nameLocation": "9245:11:23", - "nodeType": "VariableDeclaration", - "scope": 5477, - "src": "9237:19:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5368, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9237:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "9189:73:23" - }, - "returnParameters": { - "id": 5374, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5373, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5477, - "src": "9286:15:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[]" - }, - "typeName": { - "baseType": { - "id": 5371, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "9286:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 5372, - "nodeType": "ArrayTypeName", - "src": "9286:8:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", - "typeString": "uint32[]" - } - }, - "visibility": "internal" - } - ], - "src": "9285:17:23" - }, - "scope": 5599, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, + ] + } + ] + }, + { + "name": "pubkeyRegistrationMessageHash", + "type": "tuple", + "internalType": "struct BN254.G1Point", + "components": [ { - "id": 5491, - "nodeType": "FunctionDefinition", - "src": "10270:129:23", - "nodes": [], - "body": { - "id": 5490, - "nodeType": "Block", - "src": "10351:48:23", - "nodes": [], - "statements": [ - { - "expression": { - "baseExpression": { - "id": 5486, - "name": "currentApk", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5649, - "src": "10368:10:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint8_$_t_struct$_G1Point_$12956_storage_$", - "typeString": "mapping(uint8 => struct BN254.G1Point storage ref)" - } - }, - "id": 5488, - "indexExpression": { - "id": 5487, - "name": "quorumNumber", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5480, - "src": "10379:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10368:24:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_storage", - "typeString": "struct BN254.G1Point storage ref" - } - }, - "functionReturnParameters": 5485, - "id": 5489, - "nodeType": "Return", - "src": "10361:31:23" - } - ] - }, - "baseFunctions": [ - 12040 - ], - "documentation": { - "id": 5478, - "nodeType": "StructuredDocumentation", - "src": "10197:68:23", - "text": "@notice Returns the current APK for the provided `quorumNumber `" - }, - "functionSelector": "5f61a884", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getApk", - "nameLocation": "10279:6:23", - "parameters": { - "id": 5481, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5480, - "mutability": "mutable", - "name": "quorumNumber", - "nameLocation": "10292:12:23", - "nodeType": "VariableDeclaration", - "scope": 5491, - "src": "10286:18:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 5479, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "10286:5:23", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - } - ], - "src": "10285:20:23" - }, - "returnParameters": { - "id": 5485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5484, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5491, - "src": "10329:20:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_memory_ptr", - "typeString": "struct BN254.G1Point" - }, - "typeName": { - "id": 5483, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 5482, - "name": "BN254.G1Point", - "nodeType": "IdentifierPath", - "referencedDeclaration": 12956, - "src": "10329:13:23" - }, - "referencedDeclaration": 12956, - "src": "10329:13:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$12956_storage_ptr", - "typeString": "struct BN254.G1Point" - } - }, - "visibility": "internal" - } - ], - "src": "10328:22:23" - }, - "scope": 5599, - "stateMutability": "view", - "virtual": false, - "visibility": "external" + "name": "X", + "type": "uint256", + "internalType": "uint256" }, { - "id": 5509, - "nodeType": "FunctionDefinition", - "src": "10513:160:23", - "nodes": [], - "body": { - "id": 5508, - "nodeType": "Block", - "src": "10618:55:23", - "nodes": [], - "statements": [ - { - "expression": { - "baseExpression": { - "baseExpression": { - "id": 5502, - "name": "apkHistory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5643, - "src": "10635:10:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint8_$_t_array$_t_struct$_ApkUpdate_$11935_storage_$dyn_storage_$", - "typeString": "mapping(uint8 => struct IBLSApkRegistry.ApkUpdate storage ref[] storage ref)" - } - }, - "id": 5504, - "indexExpression": { - "id": 5503, - "name": "quorumNumber", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5494, - "src": "10646:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10635:24:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ApkUpdate_$11935_storage_$dyn_storage", - "typeString": "struct IBLSApkRegistry.ApkUpdate storage ref[] storage ref" - } - }, - "id": 5506, - "indexExpression": { - "id": 5505, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5496, - "src": "10660:5:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10635:31:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ApkUpdate_$11935_storage", - "typeString": "struct IBLSApkRegistry.ApkUpdate storage ref" - } - }, - "functionReturnParameters": 5501, - "id": 5507, - "nodeType": "Return", - "src": "10628:38:23" - } - ] - }, - "baseFunctions": [ - 12062 - ], - "documentation": { - "id": 5492, - "nodeType": "StructuredDocumentation", - "src": "10405:103:23", - "text": "@notice Returns the `ApkUpdate` struct at `index` in the list of APK updates for the `quorumNumber`" - }, - "functionSelector": "605747d5", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getApkUpdateAtIndex", - "nameLocation": "10522:19:23", - "parameters": { - "id": 5497, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5494, - "mutability": "mutable", - "name": "quorumNumber", - "nameLocation": "10548:12:23", - "nodeType": "VariableDeclaration", - "scope": 5509, - "src": "10542:18:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 5493, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "10542:5:23", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5496, - "mutability": "mutable", - "name": "index", - "nameLocation": "10570:5:23", - "nodeType": "VariableDeclaration", - "scope": 5509, - "src": "10562:13:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5495, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10562:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "10541:35:23" - }, - "returnParameters": { - "id": 5501, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5500, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5509, - "src": "10600:16:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ApkUpdate_$11935_memory_ptr", - "typeString": "struct IBLSApkRegistry.ApkUpdate" - }, - "typeName": { - "id": 5499, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 5498, - "name": "ApkUpdate", - "nodeType": "IdentifierPath", - "referencedDeclaration": 11935, - "src": "10600:9:23" - }, - "referencedDeclaration": 11935, - "src": "10600:9:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ApkUpdate_$11935_storage_ptr", - "typeString": "struct IBLSApkRegistry.ApkUpdate" - } - }, - "visibility": "internal" - } - ], - "src": "10599:18:23" - }, - "scope": 5599, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, + "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": "struct BN254.G1Point", + "components": [ { - "id": 5555, - "nodeType": "FunctionDefinition", - "src": "11140:927:23", - "nodes": [], - "body": { - "id": 5554, - "nodeType": "Block", - "src": "11298:769:23", - "nodes": [], - "statements": [ - { - "assignments": [ - 5523 - ], - "declarations": [ - { - "constant": false, - "id": 5523, - "mutability": "mutable", - "name": "quorumApkUpdate", - "nameLocation": "11325:15:23", - "nodeType": "VariableDeclaration", - "scope": 5554, - "src": "11308:32:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ApkUpdate_$11935_memory_ptr", - "typeString": "struct IBLSApkRegistry.ApkUpdate" - }, - "typeName": { - "id": 5522, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 5521, - "name": "ApkUpdate", - "nodeType": "IdentifierPath", - "referencedDeclaration": 11935, - "src": "11308:9:23" - }, - "referencedDeclaration": 11935, - "src": "11308:9:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ApkUpdate_$11935_storage_ptr", - "typeString": "struct IBLSApkRegistry.ApkUpdate" - } - }, - "visibility": "internal" - } - ], - "id": 5529, - "initialValue": { - "baseExpression": { - "baseExpression": { - "id": 5524, - "name": "apkHistory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5643, - "src": "11343:10:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint8_$_t_array$_t_struct$_ApkUpdate_$11935_storage_$dyn_storage_$", - "typeString": "mapping(uint8 => struct IBLSApkRegistry.ApkUpdate storage ref[] storage ref)" - } - }, - "id": 5526, - "indexExpression": { - "id": 5525, - "name": "quorumNumber", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5512, - "src": "11354:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11343:24:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ApkUpdate_$11935_storage_$dyn_storage", - "typeString": "struct IBLSApkRegistry.ApkUpdate storage ref[] storage ref" - } - }, - "id": 5528, - "indexExpression": { - "id": 5527, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5516, - "src": "11368:5:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11343:31:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ApkUpdate_$11935_storage", - "typeString": "struct IBLSApkRegistry.ApkUpdate storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11308:66:23" - }, - { - "documentation": " Validate that the update is valid for the given blockNumber:\n - blockNumber should be >= the update block number\n - the next update block number should be either 0 or strictly greater than blockNumber", - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 5534, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5531, - "name": "blockNumber", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5514, - "src": "11662:11:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "expression": { - "id": 5532, - "name": "quorumApkUpdate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5523, - "src": "11677:15:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ApkUpdate_$11935_memory_ptr", - "typeString": "struct IBLSApkRegistry.ApkUpdate memory" - } - }, - "id": 5533, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "updateBlockNumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 11932, - "src": "11677:33:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "11662:48:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "424c5341706b52656769737472792e5f76616c696461746541706b486173684174426c6f636b4e756d6265723a20696e64657820746f6f20726563656e74", - "id": 5535, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11724:64:23", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1c76bc26a4a7f625fb69d86fadf75478883dec7eee26ef2bfc76b1527a25eb51", - "typeString": "literal_string \"BLSApkRegistry._validateApkHashAtBlockNumber: index too recent\"" - }, - "value": "BLSApkRegistry._validateApkHashAtBlockNumber: index too recent" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_1c76bc26a4a7f625fb69d86fadf75478883dec7eee26ef2bfc76b1527a25eb51", - "typeString": "literal_string \"BLSApkRegistry._validateApkHashAtBlockNumber: index too recent\"" - } - ], - "id": 5530, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "11641:7:23", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 5536, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11641:157:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5537, - "nodeType": "ExpressionStatement", - "src": "11641:157:23" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5547, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 5542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 5539, - "name": "quorumApkUpdate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5523, - "src": "11829:15:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ApkUpdate_$11935_memory_ptr", - "typeString": "struct IBLSApkRegistry.ApkUpdate memory" - } - }, - "id": 5540, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "nextUpdateBlockNumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 11934, - "src": "11829:37:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 5541, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11870:1:23", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "11829:42:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 5546, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5543, - "name": "blockNumber", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5514, - "src": "11875:11:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "expression": { - "id": 5544, - "name": "quorumApkUpdate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5523, - "src": "11889:15:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ApkUpdate_$11935_memory_ptr", - "typeString": "struct IBLSApkRegistry.ApkUpdate memory" - } - }, - "id": 5545, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "nextUpdateBlockNumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 11934, - "src": "11889:37:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "11875:51:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "11829:97:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "424c5341706b52656769737472792e5f76616c696461746541706b486173684174426c6f636b4e756d6265723a206e6f74206c61746573742061706b20757064617465", - "id": 5548, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11940:69:23", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_00b6cb0a5bb8071f6a4b3fb1a1af8159667a963f3793f83038b7e4bc5317e6db", - "typeString": "literal_string \"BLSApkRegistry._validateApkHashAtBlockNumber: not latest apk update\"" - }, - "value": "BLSApkRegistry._validateApkHashAtBlockNumber: not latest apk update" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_00b6cb0a5bb8071f6a4b3fb1a1af8159667a963f3793f83038b7e4bc5317e6db", - "typeString": "literal_string \"BLSApkRegistry._validateApkHashAtBlockNumber: not latest apk update\"" - } - ], - "id": 5538, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "11808:7:23", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 5549, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11808:211:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5550, - "nodeType": "ExpressionStatement", - "src": "11808:211:23" - }, - { - "expression": { - "expression": { - "id": 5551, - "name": "quorumApkUpdate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5523, - "src": "12037:15:23", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ApkUpdate_$11935_memory_ptr", - "typeString": "struct IBLSApkRegistry.ApkUpdate memory" - } - }, - "id": 5552, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "apkHash", - "nodeType": "MemberAccess", - "referencedDeclaration": 11930, - "src": "12037:23:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes24", - "typeString": "bytes24" - } - }, - "functionReturnParameters": 5520, - "id": 5553, - "nodeType": "Return", - "src": "12030:30:23" - } - ] - }, - "baseFunctions": [ - 12082 - ], - "documentation": { - "id": 5510, - "nodeType": "StructuredDocumentation", - "src": "10679:456:23", - "text": " @notice get hash of the apk of `quorumNumber` at `blockNumber` using the provided `index`;\n called by checkSignatures in BLSSignatureChecker.sol.\n @param quorumNumber is the quorum whose ApkHash is being retrieved\n @param blockNumber is the number of the block for which the latest ApkHash will be retrieved\n @param index is the index of the apkUpdate being retrieved from the list of quorum apkUpdates in storage" - }, - "functionSelector": "68bccaac", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getApkHashAtBlockNumberAndIndex", - "nameLocation": "11149:31:23", - "parameters": { - "id": 5517, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5512, - "mutability": "mutable", - "name": "quorumNumber", - "nameLocation": "11196:12:23", - "nodeType": "VariableDeclaration", - "scope": 5555, - "src": "11190:18:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 5511, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "11190:5:23", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5514, - "mutability": "mutable", - "name": "blockNumber", - "nameLocation": "11225:11:23", - "nodeType": "VariableDeclaration", - "scope": 5555, - "src": "11218:18:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 5513, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "11218:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5516, - "mutability": "mutable", - "name": "index", - "nameLocation": "11254:5:23", - "nodeType": "VariableDeclaration", - "scope": 5555, - "src": "11246:13:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5515, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11246:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "11180:85:23" - }, - "returnParameters": { - "id": 5520, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5519, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5555, - "src": "11289:7:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes24", - "typeString": "bytes24" - }, - "typeName": { - "id": 5518, - "name": "bytes24", - "nodeType": "ElementaryTypeName", - "src": "11289:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes24", - "typeString": "bytes24" - } - }, - "visibility": "internal" - } - ], - "src": "11288:9:23" - }, - "scope": 5599, - "stateMutability": "view", - "virtual": false, - "visibility": "external" + "name": "X", + "type": "uint256", + "internalType": "uint256" }, { - "id": 5572, - "nodeType": "FunctionDefinition", - "src": "12154:143:23", - "nodes": [], - "body": { - "id": 5571, - "nodeType": "Block", - "src": "12234:63:23", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "expression": { - "baseExpression": { - "id": 5565, - "name": "apkHistory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5643, - "src": "12258:10:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint8_$_t_array$_t_struct$_ApkUpdate_$11935_storage_$dyn_storage_$", - "typeString": "mapping(uint8 => struct IBLSApkRegistry.ApkUpdate storage ref[] storage ref)" - } - }, - "id": 5567, - "indexExpression": { - "id": 5566, - "name": "quorumNumber", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5558, - "src": "12269:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12258:24:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ApkUpdate_$11935_storage_$dyn_storage", - "typeString": "struct IBLSApkRegistry.ApkUpdate storage ref[] storage ref" - } - }, - "id": 5568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "src": "12258:31:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5564, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12251:6:23", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - }, - "typeName": { - "id": 5563, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "12251:6:23", - "typeDescriptions": {} - } - }, - "id": 5569, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12251:39:23", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "functionReturnParameters": 5562, - "id": 5570, - "nodeType": "Return", - "src": "12244:46:23" - } - ] - }, - "documentation": { - "id": 5556, - "nodeType": "StructuredDocumentation", - "src": "12073:76:23", - "text": "@notice Returns the length of ApkUpdates for the provided `quorumNumber`" - }, - "functionSelector": "377ed99d", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getApkHistoryLength", - "nameLocation": "12163:19:23", - "parameters": { - "id": 5559, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5558, - "mutability": "mutable", - "name": "quorumNumber", - "nameLocation": "12189:12:23", - "nodeType": "VariableDeclaration", - "scope": 5572, - "src": "12183:18:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 5557, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "12183:5:23", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - } - ], - "src": "12182:20:23" - }, - "returnParameters": { - "id": 5562, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5561, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5572, - "src": "12226:6:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 5560, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "12226:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "12225:8:23" - }, - "scope": 5599, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, + "name": "Y", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "name": "pubkeyG2", + "type": "tuple", + "indexed": false, + "internalType": "struct BN254.G2Point", + "components": [ { - "id": 5585, - "nodeType": "FunctionDefinition", - "src": "12375:141:23", - "nodes": [], - "body": { - "id": 5584, - "nodeType": "Block", - "src": "12460:56:23", - "nodes": [], - "statements": [ - { - "expression": { - "baseExpression": { - "id": 5580, - "name": "pubkeyHashToOperator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5630, - "src": "12477:20:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - } - }, - "id": 5582, - "indexExpression": { - "id": 5581, - "name": "pubkeyHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5575, - "src": "12498:10:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12477:32:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 5579, - "id": 5583, - "nodeType": "Return", - "src": "12470:39:23" - } - ] - }, - "baseFunctions": [ - 12070 - ], - "documentation": { - "id": 5573, - "nodeType": "StructuredDocumentation", - "src": "12303:67:23", - "text": "@notice Returns the operator address for the given `pubkeyHash`" - }, - "functionSelector": "47b314e8", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getOperatorFromPubkeyHash", - "nameLocation": "12384:25:23", - "parameters": { - "id": 5576, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5575, - "mutability": "mutable", - "name": "pubkeyHash", - "nameLocation": "12418:10:23", - "nodeType": "VariableDeclaration", - "scope": 5585, - "src": "12410:18:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 5574, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "12410:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "12409:20:23" - }, - "returnParameters": { - "id": 5579, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5578, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5585, - "src": "12451:7:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5577, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12451:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "12450:9:23" - }, - "scope": 5599, - "stateMutability": "view", - "virtual": false, - "visibility": "public" + "name": "X", + "type": "uint256[2]", + "internalType": "uint256[2]" }, { - "id": 5598, - "nodeType": "FunctionDefinition", - "src": "12693:125:23", - "nodes": [], - "body": { - "id": 5597, - "nodeType": "Block", - "src": "12764:54:23", - "nodes": [], - "statements": [ - { - "expression": { - "baseExpression": { - "id": 5593, - "name": "operatorToPubkeyHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5625, - "src": "12781:20:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bytes32_$", - "typeString": "mapping(address => bytes32)" - } - }, - "id": 5595, - "indexExpression": { - "id": 5594, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5588, - "src": "12802:8:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12781:30:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 5592, - "id": 5596, - "nodeType": "Return", - "src": "12774:37:23" - } - ] - }, - "baseFunctions": [ - 12090 - ], - "documentation": { - "id": 5586, - "nodeType": "StructuredDocumentation", - "src": "12522:166:23", - "text": "@notice returns the ID used to identify the `operator` within this AVS\n @dev Returns zero in the event that the `operator` has never registered for the AVS" - }, - "functionSelector": "13542a4e", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getOperatorId", - "nameLocation": "12702:13:23", - "parameters": { - "id": 5589, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5588, - "mutability": "mutable", - "name": "operator", - "nameLocation": "12724:8:23", - "nodeType": "VariableDeclaration", - "scope": 5598, - "src": "12716:16:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5587, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12716:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "12715:18:23" - }, - "returnParameters": { - "id": 5592, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5591, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5598, - "src": "12755:7:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 5590, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "12755:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "12754:9:23" - }, - "scope": 5599, - "stateMutability": "view", - "virtual": false, - "visibility": "public" - } - ], - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 4912, - "name": "BLSApkRegistryStorage", - "nodeType": "IdentifierPath", - "referencedDeclaration": 5671, - "src": "281:21:23" - }, - "id": 4913, - "nodeType": "InheritanceSpecifier", - "src": "281:21:23" + "name": "Y", + "type": "uint256[2]", + "internalType": "uint256[2]" } - ], - "canonicalName": "BLSApkRegistry", - "contractDependencies": [], - "contractKind": "contract", - "fullyImplemented": true, - "linearizedBaseContracts": [ - 5599, - 5671, - 12091, - 12299, - 47159 - ], - "name": "BLSApkRegistry", - "nameLocation": "263:14:23", - "scope": 5600, - "usedErrors": [] + ] } ], - "license": "BUSL-1.1" + "anonymous": false }, - "id": 23 -} \ No newline at end of file + { + "type": "event", + "name": "OperatorAddedToQuorums", + "inputs": [ + { + "name": "operator", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "quorumNumbers", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "OperatorRemovedFromQuorums", + "inputs": [ + { + "name": "operator", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "quorumNumbers", + "type": "bytes", + "indexed": false, + "internalType": "bytes" + } + ], + "anonymous": false + } +] \ No newline at end of file diff --git a/subgraphs/eigenda-operator-state/abis/BLSPubkeyCompendium.json b/subgraphs/eigenda-operator-state/abis/BLSPubkeyCompendium.json deleted file mode 100644 index 76df111819..0000000000 --- a/subgraphs/eigenda-operator-state/abis/BLSPubkeyCompendium.json +++ /dev/null @@ -1,84 +0,0 @@ -[ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "components": [ - { "internalType": "uint256", "name": "X", "type": "uint256" }, - { "internalType": "uint256", "name": "Y", "type": "uint256" } - ], - "indexed": false, - "internalType": "struct BN254.G1Point", - "name": "pubkeyG1", - "type": "tuple" - }, - { - "components": [ - { "internalType": "uint256[2]", "name": "X", "type": "uint256[2]" }, - { "internalType": "uint256[2]", "name": "Y", "type": "uint256[2]" } - ], - "indexed": false, - "internalType": "struct BN254.G2Point", - "name": "pubkeyG2", - "type": "tuple" - } - ], - "name": "NewPubkeyRegistration", - "type": "event" - }, - { - "inputs": [{ "internalType": "address", "name": "", "type": "address" }], - "name": "operatorToPubkeyHash", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "name": "pubkeyHashToOperator", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { "internalType": "uint256", "name": "X", "type": "uint256" }, - { "internalType": "uint256", "name": "Y", "type": "uint256" } - ], - "internalType": "struct BN254.G1Point", - "name": "signedMessageHash", - "type": "tuple" - }, - { - "components": [ - { "internalType": "uint256", "name": "X", "type": "uint256" }, - { "internalType": "uint256", "name": "Y", "type": "uint256" } - ], - "internalType": "struct BN254.G1Point", - "name": "pubkeyG1", - "type": "tuple" - }, - { - "components": [ - { "internalType": "uint256[2]", "name": "X", "type": "uint256[2]" }, - { "internalType": "uint256[2]", "name": "Y", "type": "uint256[2]" } - ], - "internalType": "struct BN254.G2Point", - "name": "pubkeyG2", - "type": "tuple" - } - ], - "name": "registerBLSPublicKey", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } -] diff --git a/subgraphs/eigenda-operator-state/abis/BLSPubkeyRegistry.json b/subgraphs/eigenda-operator-state/abis/BLSPubkeyRegistry.json deleted file mode 100644 index ddb8d5cdfd..0000000000 --- a/subgraphs/eigenda-operator-state/abis/BLSPubkeyRegistry.json +++ /dev/null @@ -1,220 +0,0 @@ -[ - { - "inputs": [ - { - "internalType": "contract IRegistryCoordinator", - "name": "_registryCoordinator", - "type": "address" - }, - { - "internalType": "contract IBLSPublicKeyCompendium", - "name": "_pubkeyCompendium", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "quorumNumbers", - "type": "bytes" - } - ], - "name": "OperatorAddedToQuorums", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "quorumNumbers", - "type": "bytes" - } - ], - "name": "OperatorRemovedFromQuorums", - "type": "event" - }, - { - "inputs": [ - { "internalType": "address", "name": "operator", "type": "address" }, - { "internalType": "bytes", "name": "quorumNumbers", "type": "bytes" }, - { - "components": [ - { "internalType": "uint256", "name": "X", "type": "uint256" }, - { "internalType": "uint256", "name": "Y", "type": "uint256" } - ], - "internalType": "struct BN254.G1Point", - "name": "pubkey", - "type": "tuple" - } - ], - "name": "deregisterOperator", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { "internalType": "uint8", "name": "quorumNumber", "type": "uint8" } - ], - "name": "getApkForQuorum", - "outputs": [ - { - "components": [ - { "internalType": "uint256", "name": "X", "type": "uint256" }, - { "internalType": "uint256", "name": "Y", "type": "uint256" } - ], - "internalType": "struct BN254.G1Point", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { "internalType": "uint8", "name": "quorumNumber", "type": "uint8" }, - { "internalType": "uint32", "name": "blockNumber", "type": "uint32" }, - { "internalType": "uint256", "name": "index", "type": "uint256" } - ], - "name": "getApkHashForQuorumAtBlockNumberFromIndex", - "outputs": [{ "internalType": "bytes24", "name": "", "type": "bytes24" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { "internalType": "bytes", "name": "quorumNumbers", "type": "bytes" }, - { "internalType": "uint256", "name": "blockNumber", "type": "uint256" } - ], - "name": "getApkIndicesForQuorumsAtBlockNumber", - "outputs": [{ "internalType": "uint32[]", "name": "", "type": "uint32[]" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { "internalType": "uint8", "name": "quorumNumber", "type": "uint8" }, - { "internalType": "uint256", "name": "index", "type": "uint256" } - ], - "name": "getApkUpdateForQuorumByIndex", - "outputs": [ - { - "components": [ - { "internalType": "bytes24", "name": "apkHash", "type": "bytes24" }, - { - "internalType": "uint32", - "name": "updateBlockNumber", - "type": "uint32" - }, - { - "internalType": "uint32", - "name": "nextUpdateBlockNumber", - "type": "uint32" - } - ], - "internalType": "struct IBLSPubkeyRegistry.ApkUpdate", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { "internalType": "uint8", "name": "quorumNumber", "type": "uint8" } - ], - "name": "getQuorumApkHistoryLength", - "outputs": [{ "internalType": "uint32", "name": "", "type": "uint32" }], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "pubkeyCompendium", - "outputs": [ - { - "internalType": "contract IBLSPublicKeyCompendium", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { "internalType": "uint8", "name": "", "type": "uint8" }, - { "internalType": "uint256", "name": "", "type": "uint256" } - ], - "name": "quorumApkUpdates", - "outputs": [ - { "internalType": "bytes24", "name": "apkHash", "type": "bytes24" }, - { - "internalType": "uint32", - "name": "updateBlockNumber", - "type": "uint32" - }, - { - "internalType": "uint32", - "name": "nextUpdateBlockNumber", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { "internalType": "address", "name": "operator", "type": "address" }, - { "internalType": "bytes", "name": "quorumNumbers", "type": "bytes" }, - { - "components": [ - { "internalType": "uint256", "name": "X", "type": "uint256" }, - { "internalType": "uint256", "name": "Y", "type": "uint256" } - ], - "internalType": "struct BN254.G1Point", - "name": "pubkey", - "type": "tuple" - } - ], - "name": "registerOperator", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "registryCoordinator", - "outputs": [ - { - "internalType": "contract IRegistryCoordinator", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - } -] diff --git a/subgraphs/eigenda-operator-state/abis/BLSRegistryCoordinatorWithIndices.json b/subgraphs/eigenda-operator-state/abis/BLSRegistryCoordinatorWithIndices.json deleted file mode 100644 index db1cbca6ae..0000000000 --- a/subgraphs/eigenda-operator-state/abis/BLSRegistryCoordinatorWithIndices.json +++ /dev/null @@ -1,1482 +0,0 @@ -[ - { - "inputs": [ - { - "internalType": "contract ISlasher", - "name": "_slasher", - "type": "address" - }, - { - "internalType": "contract IServiceManager", - "name": "_serviceManager", - "type": "address" - }, - { - "internalType": "contract IStakeRegistry", - "name": "_stakeRegistry", - "type": "address" - }, - { - "internalType": "contract IBLSPubkeyRegistry", - "name": "_blsPubkeyRegistry", - "type": "address" - }, - { - "internalType": "contract IIndexRegistry", - "name": "_indexRegistry", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "prevChurnApprover", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "newChurnApprover", - "type": "address" - } - ], - "name": "ChurnApproverUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "prevEjector", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "newEjector", - "type": "address" - } - ], - "name": "EjectorUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint8", - "name": "version", - "type": "uint8" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "operatorId", - "type": "bytes32" - } - ], - "name": "OperatorDeregistered", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "operatorId", - "type": "bytes32" - } - ], - "name": "OperatorRegistered", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint8", - "name": "quorumNumber", - "type": "uint8" - }, - { - "components": [ - { - "internalType": "uint32", - "name": "maxOperatorCount", - "type": "uint32" - }, - { - "internalType": "uint16", - "name": "kickBIPsOfOperatorStake", - "type": "uint16" - }, - { - "internalType": "uint16", - "name": "kickBIPsOfTotalStake", - "type": "uint16" - } - ], - "indexed": false, - "internalType": "struct IBLSRegistryCoordinatorWithIndices.OperatorSetParam", - "name": "operatorSetParams", - "type": "tuple" - } - ], - "name": "OperatorSetParamsUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "operatorId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "string", - "name": "socket", - "type": "string" - } - ], - "name": "OperatorSocketUpdate", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "", - "type": "string" - } - ], - "name": "log", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "log_address", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256[]", - "name": "val", - "type": "uint256[]" - } - ], - "name": "log_array", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "int256[]", - "name": "val", - "type": "int256[]" - } - ], - "name": "log_array", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address[]", - "name": "val", - "type": "address[]" - } - ], - "name": "log_array", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "name": "log_bytes", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "name": "log_bytes32", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "int256", - "name": "", - "type": "int256" - } - ], - "name": "log_int", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "key", - "type": "string" - }, - { - "indexed": false, - "internalType": "address", - "name": "val", - "type": "address" - } - ], - "name": "log_named_address", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "key", - "type": "string" - }, - { - "indexed": false, - "internalType": "uint256[]", - "name": "val", - "type": "uint256[]" - } - ], - "name": "log_named_array", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "key", - "type": "string" - }, - { - "indexed": false, - "internalType": "int256[]", - "name": "val", - "type": "int256[]" - } - ], - "name": "log_named_array", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "key", - "type": "string" - }, - { - "indexed": false, - "internalType": "address[]", - "name": "val", - "type": "address[]" - } - ], - "name": "log_named_array", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "key", - "type": "string" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "val", - "type": "bytes" - } - ], - "name": "log_named_bytes", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "key", - "type": "string" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "val", - "type": "bytes32" - } - ], - "name": "log_named_bytes32", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "key", - "type": "string" - }, - { - "indexed": false, - "internalType": "int256", - "name": "val", - "type": "int256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "decimals", - "type": "uint256" - } - ], - "name": "log_named_decimal_int", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "key", - "type": "string" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "val", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "decimals", - "type": "uint256" - } - ], - "name": "log_named_decimal_uint", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "key", - "type": "string" - }, - { - "indexed": false, - "internalType": "int256", - "name": "val", - "type": "int256" - } - ], - "name": "log_named_int", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "key", - "type": "string" - }, - { - "indexed": false, - "internalType": "string", - "name": "val", - "type": "string" - } - ], - "name": "log_named_string", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "key", - "type": "string" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "val", - "type": "uint256" - } - ], - "name": "log_named_uint", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "", - "type": "string" - } - ], - "name": "log_string", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "log_uint", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "name": "logs", - "type": "event" - }, - { - "inputs": [], - "name": "IS_TEST", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "OPERATOR_CHURN_APPROVAL_TYPEHASH", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "blsPubkeyRegistry", - "outputs": [ - { - "internalType": "contract IBLSPubkeyRegistry", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "registeringOperatorId", - "type": "bytes32" - }, - { - "components": [ - { - "internalType": "uint8", - "name": "quorumNumber", - "type": "uint8" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "X", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "Y", - "type": "uint256" - } - ], - "internalType": "struct BN254.G1Point", - "name": "pubkey", - "type": "tuple" - } - ], - "internalType": "struct IBLSRegistryCoordinatorWithIndices.OperatorKickParam[]", - "name": "operatorKickParams", - "type": "tuple[]" - }, - { - "internalType": "bytes32", - "name": "salt", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "expiry", - "type": "uint256" - } - ], - "name": "calculateOperatorChurnApprovalDigestHash", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "churnApprover", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "quorumNumbers", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "deregistrationData", - "type": "bytes" - } - ], - "name": "deregisterOperatorWithCoordinator", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "quorumNumbers", - "type": "bytes" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "X", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "Y", - "type": "uint256" - } - ], - "internalType": "struct BN254.G1Point", - "name": "pubkey", - "type": "tuple" - }, - { - "internalType": "bytes32[]", - "name": "operatorIdsToSwap", - "type": "bytes32[]" - } - ], - "name": "deregisterOperatorWithCoordinator", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bytes", - "name": "quorumNumbers", - "type": "bytes" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "X", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "Y", - "type": "uint256" - } - ], - "internalType": "struct BN254.G1Point", - "name": "pubkey", - "type": "tuple" - }, - { - "internalType": "bytes32[]", - "name": "operatorIdsToSwap", - "type": "bytes32[]" - } - ], - "name": "ejectOperatorFromCoordinator", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "ejector", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "excludeArtifacts", - "outputs": [ - { - "internalType": "string[]", - "name": "excludedArtifacts_", - "type": "string[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "excludeContracts", - "outputs": [ - { - "internalType": "address[]", - "name": "excludedContracts_", - "type": "address[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "excludeSenders", - "outputs": [ - { - "internalType": "address[]", - "name": "excludedSenders_", - "type": "address[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "failed", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "operatorId", - "type": "bytes32" - } - ], - "name": "getCurrentQuorumBitmapByOperatorId", - "outputs": [ - { - "internalType": "uint192", - "name": "", - "type": "uint192" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "getOperator", - "outputs": [ - { - "components": [ - { - "internalType": "bytes32", - "name": "operatorId", - "type": "bytes32" - }, - { - "internalType": "enum IRegistryCoordinator.OperatorStatus", - "name": "status", - "type": "uint8" - } - ], - "internalType": "struct IRegistryCoordinator.Operator", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "getOperatorId", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "quorumNumber", - "type": "uint8" - } - ], - "name": "getOperatorSetParams", - "outputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "maxOperatorCount", - "type": "uint32" - }, - { - "internalType": "uint16", - "name": "kickBIPsOfOperatorStake", - "type": "uint16" - }, - { - "internalType": "uint16", - "name": "kickBIPsOfTotalStake", - "type": "uint16" - } - ], - "internalType": "struct IBLSRegistryCoordinatorWithIndices.OperatorSetParam", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "operatorId", - "type": "bytes32" - }, - { - "internalType": "uint32", - "name": "blockNumber", - "type": "uint32" - }, - { - "internalType": "uint256", - "name": "index", - "type": "uint256" - } - ], - "name": "getQuorumBitmapByOperatorIdAtBlockNumberByIndex", - "outputs": [ - { - "internalType": "uint192", - "name": "", - "type": "uint192" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "blockNumber", - "type": "uint32" - }, - { - "internalType": "bytes32[]", - "name": "operatorIds", - "type": "bytes32[]" - } - ], - "name": "getQuorumBitmapIndicesByOperatorIdsAtBlockNumber", - "outputs": [ - { - "internalType": "uint32[]", - "name": "", - "type": "uint32[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "operatorId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "index", - "type": "uint256" - } - ], - "name": "getQuorumBitmapUpdateByOperatorIdByIndex", - "outputs": [ - { - "components": [ - { - "internalType": "uint32", - "name": "updateBlockNumber", - "type": "uint32" - }, - { - "internalType": "uint32", - "name": "nextUpdateBlockNumber", - "type": "uint32" - }, - { - "internalType": "uint192", - "name": "quorumBitmap", - "type": "uint192" - } - ], - "internalType": "struct IRegistryCoordinator.QuorumBitmapUpdate", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "operatorId", - "type": "bytes32" - } - ], - "name": "getQuorumBitmapUpdateByOperatorIdLength", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "indexRegistry", - "outputs": [ - { - "internalType": "contract IIndexRegistry", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_churnApprover", - "type": "address" - }, - { - "internalType": "address", - "name": "_ejector", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint32", - "name": "maxOperatorCount", - "type": "uint32" - }, - { - "internalType": "uint16", - "name": "kickBIPsOfOperatorStake", - "type": "uint16" - }, - { - "internalType": "uint16", - "name": "kickBIPsOfTotalStake", - "type": "uint16" - } - ], - "internalType": "struct IBLSRegistryCoordinatorWithIndices.OperatorSetParam[]", - "name": "_operatorSetParams", - "type": "tuple[]" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "name": "isChurnApproverSaltUsed", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "numRegistries", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "quorumNumbers", - "type": "bytes" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "X", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "Y", - "type": "uint256" - } - ], - "internalType": "struct BN254.G1Point", - "name": "pubkey", - "type": "tuple" - }, - { - "internalType": "string", - "name": "socket", - "type": "string" - }, - { - "components": [ - { - "internalType": "uint8", - "name": "quorumNumber", - "type": "uint8" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "X", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "Y", - "type": "uint256" - } - ], - "internalType": "struct BN254.G1Point", - "name": "pubkey", - "type": "tuple" - } - ], - "internalType": "struct IBLSRegistryCoordinatorWithIndices.OperatorKickParam[]", - "name": "operatorKickParams", - "type": "tuple[]" - }, - { - "components": [ - { - "internalType": "bytes", - "name": "signature", - "type": "bytes" - }, - { - "internalType": "bytes32", - "name": "salt", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "expiry", - "type": "uint256" - } - ], - "internalType": "struct ISignatureUtils.SignatureWithSaltAndExpiry", - "name": "signatureWithSaltAndExpiry", - "type": "tuple" - } - ], - "name": "registerOperatorWithCoordinator", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "quorumNumbers", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "registrationData", - "type": "bytes" - } - ], - "name": "registerOperatorWithCoordinator", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "quorumNumbers", - "type": "bytes" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "X", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "Y", - "type": "uint256" - } - ], - "internalType": "struct BN254.G1Point", - "name": "pubkey", - "type": "tuple" - }, - { - "internalType": "string", - "name": "socket", - "type": "string" - } - ], - "name": "registerOperatorWithCoordinator", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "registries", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "serviceManager", - "outputs": [ - { - "internalType": "contract IServiceManager", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_churnApprover", - "type": "address" - } - ], - "name": "setChurnApprover", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_ejector", - "type": "address" - } - ], - "name": "setEjector", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "quorumNumber", - "type": "uint8" - }, - { - "components": [ - { - "internalType": "uint32", - "name": "maxOperatorCount", - "type": "uint32" - }, - { - "internalType": "uint16", - "name": "kickBIPsOfOperatorStake", - "type": "uint16" - }, - { - "internalType": "uint16", - "name": "kickBIPsOfTotalStake", - "type": "uint16" - } - ], - "internalType": "struct IBLSRegistryCoordinatorWithIndices.OperatorSetParam", - "name": "operatorSetParam", - "type": "tuple" - } - ], - "name": "setOperatorSetParams", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "slasher", - "outputs": [ - { - "internalType": "contract ISlasher", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "stakeRegistry", - "outputs": [ - { - "internalType": "contract IStakeRegistry", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "targetArtifactSelectors", - "outputs": [ - { - "components": [ - { - "internalType": "address", - "name": "addr", - "type": "address" - }, - { - "internalType": "bytes4[]", - "name": "selectors", - "type": "bytes4[]" - } - ], - "internalType": "struct StdInvariant.FuzzSelector[]", - "name": "targetedArtifactSelectors_", - "type": "tuple[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "targetArtifacts", - "outputs": [ - { - "internalType": "string[]", - "name": "targetedArtifacts_", - "type": "string[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "targetContracts", - "outputs": [ - { - "internalType": "address[]", - "name": "targetedContracts_", - "type": "address[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "targetSelectors", - "outputs": [ - { - "components": [ - { - "internalType": "address", - "name": "addr", - "type": "address" - }, - { - "internalType": "bytes4[]", - "name": "selectors", - "type": "bytes4[]" - } - ], - "internalType": "struct StdInvariant.FuzzSelector[]", - "name": "targetedSelectors_", - "type": "tuple[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "targetSenders", - "outputs": [ - { - "internalType": "address[]", - "name": "targetedSenders_", - "type": "address[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "socket", - "type": "string" - } - ], - "name": "updateSocket", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } -] diff --git a/subgraphs/eigenda-operator-state/abis/RegistryCoordinator.json b/subgraphs/eigenda-operator-state/abis/RegistryCoordinator.json index 8962b549f2..959a445e47 100644 --- a/subgraphs/eigenda-operator-state/abis/RegistryCoordinator.json +++ b/subgraphs/eigenda-operator-state/abis/RegistryCoordinator.json @@ -1 +1,1411 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_serviceManager","type":"address","internalType":"contract IServiceManager"},{"name":"_stakeRegistry","type":"address","internalType":"contract IStakeRegistry"},{"name":"_blsApkRegistry","type":"address","internalType":"contract IBLSApkRegistry"},{"name":"_indexRegistry","type":"address","internalType":"contract IIndexRegistry"}],"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":"contract IBLSApkRegistry"}],"stateMutability":"view"},{"type":"function","name":"calculateOperatorChurnApprovalDigestHash","inputs":[{"name":"registeringOperatorId","type":"bytes32","internalType":"bytes32"},{"name":"operatorKickParams","type":"tuple[]","internalType":"struct IRegistryCoordinator.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":"struct IRegistryCoordinator.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":"struct IStakeRegistry.StrategyParams[]","components":[{"name":"strategy","type":"address","internalType":"contract IStrategy"},{"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":"struct IRegistryCoordinator.OperatorInfo","components":[{"name":"operatorId","type":"bytes32","internalType":"bytes32"},{"name":"status","type":"uint8","internalType":"enum IRegistryCoordinator.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":"struct IRegistryCoordinator.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":"enum IRegistryCoordinator.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":"struct IRegistryCoordinator.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":"contract IIndexRegistry"}],"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":"contract IPauserRegistry"},{"name":"_initialPausedStatus","type":"uint256","internalType":"uint256"},{"name":"_operatorSetParams","type":"tuple[]","internalType":"struct IRegistryCoordinator.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":"struct IStakeRegistry.StrategyParams[][]","components":[{"name":"strategy","type":"address","internalType":"contract IStrategy"},{"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":"contract IPauserRegistry"}],"stateMutability":"view"},{"type":"function","name":"pubkeyRegistrationMessageHash","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct BN254.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":"struct IBLSApkRegistry.PubkeyRegistrationParams","components":[{"name":"pubkeyRegistrationSignature","type":"tuple","internalType":"struct BN254.G1Point","components":[{"name":"X","type":"uint256","internalType":"uint256"},{"name":"Y","type":"uint256","internalType":"uint256"}]},{"name":"pubkeyG1","type":"tuple","internalType":"struct BN254.G1Point","components":[{"name":"X","type":"uint256","internalType":"uint256"},{"name":"Y","type":"uint256","internalType":"uint256"}]},{"name":"pubkeyG2","type":"tuple","internalType":"struct BN254.G2Point","components":[{"name":"X","type":"uint256[2]","internalType":"uint256[2]"},{"name":"Y","type":"uint256[2]","internalType":"uint256[2]"}]}]},{"name":"operatorSignature","type":"tuple","internalType":"struct ISignatureUtils.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":"struct IBLSApkRegistry.PubkeyRegistrationParams","components":[{"name":"pubkeyRegistrationSignature","type":"tuple","internalType":"struct BN254.G1Point","components":[{"name":"X","type":"uint256","internalType":"uint256"},{"name":"Y","type":"uint256","internalType":"uint256"}]},{"name":"pubkeyG1","type":"tuple","internalType":"struct BN254.G1Point","components":[{"name":"X","type":"uint256","internalType":"uint256"},{"name":"Y","type":"uint256","internalType":"uint256"}]},{"name":"pubkeyG2","type":"tuple","internalType":"struct BN254.G2Point","components":[{"name":"X","type":"uint256[2]","internalType":"uint256[2]"},{"name":"Y","type":"uint256[2]","internalType":"uint256[2]"}]}]},{"name":"operatorKickParams","type":"tuple[]","internalType":"struct IRegistryCoordinator.OperatorKickParam[]","components":[{"name":"quorumNumber","type":"uint8","internalType":"uint8"},{"name":"operator","type":"address","internalType":"address"}]},{"name":"churnApproverSignature","type":"tuple","internalType":"struct ISignatureUtils.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":"struct ISignatureUtils.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":"contract IServiceManager"}],"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":"struct IRegistryCoordinator.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":"contract IPauserRegistry"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stakeRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IStakeRegistry"}],"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":"struct IRegistryCoordinator.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":"contract IPauserRegistry"},{"name":"newPauserRegistry","type":"address","indexed":false,"internalType":"contract IPauserRegistry"}],"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}],"bytecode":{"object":"0x6101c06040523480156200001257600080fd5b506040516200633f3803806200633f83398101604081905262000035916200024e565b604080518082018252601681527f4156535265676973747279436f6f7264696e61746f720000000000000000000060208083019182528351808501909452600684526576302e302e3160d01b908401528151902060e08190527f6bda7e3f385e48841048390444cced5cc795af87758af67622e5f4f0882c4a996101008190524660a0529192917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6200012d8184846040805160208101859052908101839052606081018290524660808201523060a082015260009060c0016040516020818303038152906040528051906020012090509392505050565b6080523060c05261012052505050506001600160a01b0384811661014052838116610180528281166101605281166101a0526200016962000173565b50505050620002b6565b600054610100900460ff1615620001e05760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000233576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200024b57600080fd5b50565b600080600080608085870312156200026557600080fd5b8451620002728162000235565b6020860151909450620002858162000235565b6040860151909350620002988162000235565b6060860151909250620002ab8162000235565b939692955090935050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a051615f81620003be600039600081816106240152818161118c0152818161223e01528181612fe1015281816138680152613d0401526000818161057c015281816121c90152818161264901528181612f61015281816137bf01528181613a150152613c8301526000818161054201528181610eae0152818161220701528181612ee3015281816130c90152818161313f0152818161373f0152613d8001526000818161048601528181612e39015261368701526000613f5c01526000613fab01526000613f8601526000613edf01526000613f0901526000613f330152615f816000f3fe608060405234801561001057600080fd5b50600436106102945760003560e01c80635df4594611610167578063a50857bf116100ce578063dd8283f311610087578063dd8283f3146106f5578063e65797ad14610708578063f2fde38b146107ab578063f8581191146107be578063fabc1cbc146107d1578063fd39105a146107e457600080fd5b8063a50857bf1461066d578063c391425e14610680578063ca0de882146106a0578063ca4f2d97146106c7578063d72d8dd6146106da578063d75b4c88146106e257600080fd5b8063886f119511610120578063886f1195146105cc5780638da5cb5b146105e55780639aa1653d146105ed5780639b5d177b1461060c5780639e9923c21461061f5780639feab8591461064657600080fd5b80635df459461461053d5780636347c9001461056457806368304835146105775780636e3b17db1461059e578063715018a6146105b1578063871ef049146105b957600080fd5b806328f61b311161020b5780635140a548116101c45780635140a548146104c85780635865c60c146104db578063595c6a67146104fb5780635ac86ab7146105035780635b0b829f146105225780635c975abb1461053557600080fd5b806328f61b3114610435578063296bb0641461044857806329d1e0c31461045b5780632cdd1e861461046e5780633998fdd3146104815780633c2a7f4c146104a857600080fd5b806310d67a2f1161025d57806310d67a2f1461034a57806313542a4e1461035d578063136439dd146103865780631478851f146103995780631eb812da146103cc578063249a0c421461041557600080fd5b8062cf2ab51461029957806303fd3492146102ae57806304ec6351146102e1578063054310e61461030c5780630cf4b76714610337575b600080fd5b6102ac6102a7366004614a5c565b610820565b005b6102ce6102bc366004614a9d565b60009081526098602052604090205490565b6040519081526020015b60405180910390f35b6102f46102ef366004614ac8565b610936565b6040516001600160c01b0390911681526020016102d8565b609d5461031f906001600160a01b031681565b6040516001600160a01b0390911681526020016102d8565b6102ac610345366004614be7565b610b2c565b6102ac610358366004614c5c565b610c14565b6102ce61036b366004614c5c565b6001600160a01b031660009081526099602052604090205490565b6102ac610394366004614a9d565b610cc7565b6103bc6103a7366004614a9d565b609a6020526000908152604090205460ff1681565b60405190151581526020016102d8565b6103df6103da366004614c79565b610e04565b60408051825163ffffffff908116825260208085015190911690820152918101516001600160c01b0316908201526060016102d8565b6102ce610423366004614cac565b609b6020526000908152604090205481565b609e5461031f906001600160a01b031681565b61031f610456366004614a9d565b610e95565b6102ac610469366004614c5c565b610f21565b6102ac61047c366004614c5c565b610f32565b61031f7f000000000000000000000000000000000000000000000000000000000000000081565b6104bb6104b6366004614c5c565b610f43565b6040516102d89190614cc7565b6102ac6104d6366004614d1f565b610fc2565b6104ee6104e9366004614c5c565b61154c565b6040516102d89190614dc2565b6102ac6115c0565b6103bc610511366004614cac565b6001805460ff9092161b9081161490565b6102ac610530366004614e47565b61168c565b6001546102ce565b61031f7f000000000000000000000000000000000000000000000000000000000000000081565b61031f610572366004614a9d565b611723565b61031f7f000000000000000000000000000000000000000000000000000000000000000081565b6102ac6105ac366004614e7b565b61174d565b6102ac61180d565b6102f46105c7366004614a9d565b611821565b60005461031f906201000090046001600160a01b031681565b61031f61182c565b6096546105fa9060ff1681565b60405160ff90911681526020016102d8565b6102ac61061a366004614f9b565b611845565b61031f7f000000000000000000000000000000000000000000000000000000000000000081565b6102ce7f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de681565b6102ac61067b366004615094565b611b7c565b61069361068e36600461515f565b611d00565b6040516102d89190615209565b6102ce7ff843b3116d574f43e69f8dda5d93ebf11dccc4a465983f9453058005cd6b34a081565b6102ac6106d5366004615253565b611fae565b609c546102ce565b6102ac6106f0366004615339565b612015565b6102ac6107033660046154ec565b612028565b610777610716366004614cac565b60408051606080820183526000808352602080840182905292840181905260ff9490941684526097825292829020825193840183525463ffffffff8116845261ffff600160201b8204811692850192909252600160301b9004169082015290565b60408051825163ffffffff16815260208084015161ffff9081169183019190915292820151909216908201526060016102d8565b6102ac6107b9366004614c5c565b61232c565b6102ce6107cc366004615600565b6123a2565b6102ac6107df366004614a9d565b6123e9565b6108136107f2366004614c5c565b6001600160a01b031660009081526099602052604090206001015460ff1690565b6040516102d891906156b5565b600154600290600490811614156108525760405162461bcd60e51b8152600401610849906156c3565b60405180910390fd5b60005b82811015610930576000848483818110610871576108716156fa565b90506020020160208101906108869190614c5c565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff1660028111156108d1576108d1614d8a565b60028111156108e2576108e2614d8a565b905250805190915060006108f582612545565b9050600061090b826001600160c01b03166125ae565b905061091885858361260b565b5050505050808061092890615726565b915050610855565b50505050565b6000838152609860205260408120805482919084908110610959576109596156fa565b600091825260209182902060408051606081018252929091015463ffffffff808216808552600160201b8304821695850195909552600160401b9091046001600160c01b03169183019190915290925085161015610a535760405162461bcd60e51b815260206004820152606560248201527f5265676973747279436f6f7264696e61746f722e67657451756f72756d42697460448201527f6d61704174426c6f636b4e756d6265724279496e6465783a2071756f72756d4260648201527f69746d61705570646174652069732066726f6d20616674657220626c6f636b4e6084820152643ab6b132b960d91b60a482015260c401610849565b602081015163ffffffff161580610a795750806020015163ffffffff168463ffffffff16105b610b205760405162461bcd60e51b815260206004820152606660248201527f5265676973747279436f6f7264696e61746f722e67657451756f72756d42697460448201527f6d61704174426c6f636b4e756d6265724279496e6465783a2071756f72756d4260648201527f69746d61705570646174652069732066726f6d206265666f726520626c6f636b608482015265273ab6b132b960d11b60a482015260c401610849565b60400151949350505050565b60013360009081526099602052604090206001015460ff166002811115610b5557610b55614d8a565b14610bc85760405162461bcd60e51b815260206004820152603c60248201527f5265676973747279436f6f7264696e61746f722e757064617465536f636b657460448201527f3a206f70657261746f72206973206e6f742072656769737465726564000000006064820152608401610849565b33600090815260996020526040908190205490517fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa90610c09908490615799565b60405180910390a250565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8b91906157ac565b6001600160a01b0316336001600160a01b031614610cbb5760405162461bcd60e51b8152600401610849906157c9565b610cc4816126f8565b50565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610d14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d389190615813565b610d545760405162461bcd60e51b815260040161084990615835565b60015481811614610dcd5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610849565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d90602001610c09565b60408051606081018252600080825260208201819052918101919091526000838152609860205260409020805483908110610e4157610e416156fa565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160c01b03600160401b909304929092169082015290505b92915050565b6040516308f6629d60e31b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906347b314e890602401602060405180830381865afa158015610efd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8f91906157ac565b610f296127fd565b610cc48161285c565b610f3a6127fd565b610cc4816128c5565b6040805180820190915260008082526020820152610e8f610fbd7f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de684604051602001610fa29291909182526001600160a01b0316602082015260400190565b6040516020818303038152906040528051906020012061292e565b61297c565b60015460029060049081161415610feb5760405162461bcd60e51b8152600401610849906156c3565b600061103384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff169150612a0c9050565b905061103e81612ac5565b6110ae5760405162461bcd60e51b81526020600482015260476024820152600080516020615ecc83398151915260448201527f6f7273466f7251756f72756d3a20736f6d652071756f72756d7320646f206e6f6064820152661d08195e1a5cdd60ca1b608482015260a401610849565b84831461111d5760405162461bcd60e51b81526020600482015260436024820152600080516020615ecc83398151915260448201527f6f7273466f7251756f72756d3a20696e707574206c656e677468206d69736d616064820152620e8c6d60eb1b608482015260a401610849565b60005b8381101561154357600085858381811061113c5761113c6156fa565b919091013560f81c9150369050600089898581811061115d5761115d6156fa565b905060200281019061116f919061587d565b6040516379a0849160e11b815260ff8616600482015291935091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f341092290602401602060405180830381865afa1580156111db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ff91906158c6565b63ffffffff16811461129b5760405162461bcd60e51b81526020600482015260656024820152600080516020615ecc83398151915260448201527f6f7273466f7251756f72756d3a206e756d626572206f6620757064617465642060648201527f6f70657261746f727320646f6573206e6f74206d617463682071756f72756d206084820152641d1bdd185b60da1b60a482015260c401610849565b6000805b828110156114e25760008484838181106112bb576112bb6156fa565b90506020020160208101906112d09190614c5c565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff16600281111561131b5761131b614d8a565b600281111561132c5761132c614d8a565b9052508051909150600061133f82612545565b905060016001600160c01b03821660ff8b161c8116146113c35760405162461bcd60e51b815260206004820152604460248201819052600080516020615ecc833981519152908201527f6f7273466f7251756f72756d3a206f70657261746f72206e6f7420696e2071756064820152636f72756d60e01b608482015260a401610849565b856001600160a01b0316846001600160a01b03161161146e5760405162461bcd60e51b81526020600482015260676024820152600080516020615ecc83398151915260448201527f6f7273466f7251756f72756d3a206f70657261746f7273206172726179206d7560648201527f737420626520736f7274656420696e20617363656e64696e6720616464726573608482015266399037b93232b960c91b60a482015260c401610849565b506114cc83838f8f8d908e600161148591906158e3565b92611492939291906158fb565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061260b92505050565b509092506114db905081615726565b905061129f565b5060ff84166000818152609b6020908152604091829020439081905591519182527f46077d55330763f16269fd75e5761663f4192d2791747c0189b16ad31db07db4910160405180910390a2505050508061153c90615726565b9050611120565b50505050505050565b60408051808201909152600080825260208201526001600160a01b0382166000908152609960209081526040918290208251808401909352805483526001810154909183019060ff1660028111156115a6576115a6614d8a565b60028111156115b7576115b7614d8a565b90525092915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa15801561160d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116319190615813565b61164d5760405162461bcd60e51b815260040161084990615835565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6116946127fd565b609654829060ff908116908216106117145760405162461bcd60e51b815260206004820152603760248201527f5265676973747279436f6f7264696e61746f722e71756f72756d45786973747360448201527f3a2071756f72756d20646f6573206e6f742065786973740000000000000000006064820152608401610849565b61171e8383612af8565b505050565b609c818154811061173357600080fd5b6000918252602090912001546001600160a01b0316905081565b609e546001600160a01b031633146117cd5760405162461bcd60e51b815260206004820152603a60248201527f5265676973747279436f6f7264696e61746f722e6f6e6c79456a6563746f723a60448201527f2063616c6c6572206973206e6f742074686520656a6563746f720000000000006064820152608401610849565b61171e8383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ba592505050565b6118156127fd565b61181f6000613055565b565b6000610e8f82612545565b60006118406064546001600160a01b031690565b905090565b60018054600091908116141561186d5760405162461bcd60e51b8152600401610849906156c3565b8389146118f05760405162461bcd60e51b8152602060048201526044602482018190527f5265676973747279436f6f7264696e61746f722e72656769737465724f706572908201527f61746f7257697468436875726e3a20696e707574206c656e677468206d69736d6064820152630c2e8c6d60e31b608482015260a401610849565b60006118fc33886130a7565b905061195b818787808060200260200160405190810160405280939291908181526020016000905b828210156119505761194160408302860136819003810190615925565b81526020019060010190611924565b5050505050866131d8565b60006119a233838e8e8e8e8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250613362915050565b905060005b8b811015611b6d576000609760008f8f858181106119c7576119c76156fa565b919091013560f81c82525060208082019290925260409081016000208151606081018352905463ffffffff811680835261ffff600160201b8304811695840195909552600160301b90910490931691810191909152845180519193509084908110611a3457611a346156fa565b602002602001015163ffffffff161115611b5a57611ad58e8e84818110611a5d57611a5d6156fa565b9050013560f81c60f81b60f81c84604001518481518110611a8057611a806156fa565b60200260200101513386602001518681518110611a9f57611a9f6156fa565b60200260200101518d8d88818110611ab957611ab96156fa565b905060400201803603810190611acf9190615925565b866138f6565b611b5a898984818110611aea57611aea6156fa565b9050604002016020016020810190611b029190614c5c565b8f8f8590866001611b1391906158e3565b92611b20939291906158fb565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ba592505050565b5080611b6581615726565b9150506119a7565b50505050505050505050505050565b600180546000919081161415611ba45760405162461bcd60e51b8152600401610849906156c3565b6000611bb033856130a7565b90506000611bf933838b8b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250613362915050565b51905060005b88811015611cf45760008a8a83818110611c1b57611c1b6156fa565b919091013560f81c600081815260976020526040902054855191935063ffffffff169150849084908110611c5157611c516156fa565b602002602001015163ffffffff161115611ce15760405162461bcd60e51b8152602060048201526044602482018190527f5265676973747279436f6f7264696e61746f722e72656769737465724f706572908201527f61746f723a206f70657261746f7220636f756e742065786365656473206d6178606482015263696d756d60e01b608482015260a401610849565b5080611cec81615726565b915050611bff565b50505050505050505050565b6060600082516001600160401b03811115611d1d57611d1d614b00565b604051908082528060200260200182016040528015611d46578160200160208202803683370190505b50905060005b8351811015611fa657600060986000868481518110611d6d57611d6d6156fa565b6020026020010151815260200190815260200160002080549050905060005b81811015611f91578663ffffffff1660986000888681518110611db157611db16156fa565b6020026020010151815260200190815260200160002060018385611dd59190615941565b611ddf9190615941565b81548110611def57611def6156fa565b60009182526020909120015463ffffffff1611611f7f57600060986000888681518110611e1e57611e1e6156fa565b6020026020010151815260200190815260200160002060018385611e429190615941565b611e4c9190615941565b81548110611e5c57611e5c6156fa565b600091825260209091200154600160201b900463ffffffff169050801580611e8f57508763ffffffff168163ffffffff16115b611f375760405162461bcd60e51b815260206004820152606760248201527f5265676973747279436f6f7264696e61746f722e67657451756f72756d42697460448201527f6d6170496e64696365734174426c6f636b4e756d6265723a206f70657261746f60648201527f72496420686173206e6f2071756f72756d4269746d61707320617420626c6f6360848201526635a73ab6b132b960c91b60a482015260c401610849565b6001611f438385615941565b611f4d9190615941565b858581518110611f5f57611f5f6156fa565b602002602001019063ffffffff16908163ffffffff168152505050611f91565b80611f8981615726565b915050611d8c565b50508080611f9e90615726565b915050611d4c565b509392505050565b6001805460029081161415611fd55760405162461bcd60e51b8152600401610849906156c3565b61171e3384848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ba592505050565b61201d6127fd565b61171e838383613bcb565b600054610100900460ff16158080156120485750600054600160ff909116105b806120625750303b158015612062575060005460ff166001145b6120c55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610849565b6000805460ff1916600117905580156120e8576000805461ff0019166101001790555b825184511480156120fa575081518351145b6121645760405162461bcd60e51b815260206004820152603560248201527f5265676973747279436f6f7264696e61746f722e696e697469616c697a653a206044820152740d2dce0eae840d8cadccee8d040dad2e6dac2e8c6d605b1b6064820152608401610849565b61216d89613055565b6121778686613de2565b6121808861285c565b612189876128c5565b609c80546001818101835560008381527faf85b9071dfafeac1409d3f1d19bafc9bc7c37974cde8df0ee6168f0086e539c92830180546001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166001600160a01b03199283161790925585548085018755850180547f0000000000000000000000000000000000000000000000000000000000000000841690831617905585549384019095559190920180547f000000000000000000000000000000000000000000000000000000000000000090921691909316179091555b84518110156122da576122c8858281518110612287576122876156fa565b60200260200101518583815181106122a1576122a16156fa565b60200260200101518584815181106122bb576122bb6156fa565b6020026020010151613bcb565b806122d281615726565b915050612269565b508015612321576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b6123346127fd565b6001600160a01b0381166123995760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610849565b610cc481613055565b60006123e07ff843b3116d574f43e69f8dda5d93ebf11dccc4a465983f9453058005cd6b34a086868686604051602001610fa2959493929190615958565b95945050505050565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561243c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061246091906157ac565b6001600160a01b0316336001600160a01b0316146124905760405162461bcd60e51b8152600401610849906157c9565b60015419811960015419161461250e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610849565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610c09565b600081815260986020526040812054806125625750600092915050565b600083815260986020526040902061257b600183615941565b8154811061258b5761258b6156fa565b600091825260209091200154600160401b90046001600160c01b03169392505050565b60606000805b610100811015612604576001811b9150838216156125f457828160f81b6040516020016125e29291906159ce565b60405160208183030381529060405292505b6125fd81615726565b90506125b4565b5050919050565b60018260200151600281111561262357612623614d8a565b1461262d57505050565b81516040516333567f7f60e11b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906366acfefe90612682908890869088906004016159fd565b6020604051808303816000875af11580156126a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126c59190615a24565b90506001600160c01b038116156126f1576126f1856126ec836001600160c01b03166125ae565b612ba5565b5050505050565b6001600160a01b0381166127865760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610849565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b3361280661182c565b6001600160a01b03161461181f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610849565b609d54604080516001600160a01b03928316815291831660208301527f315457d8a8fe60f04af17c16e2f5a5e1db612b31648e58030360759ef8f3528c910160405180910390a1609d80546001600160a01b0319166001600160a01b0392909216919091179055565b609e54604080516001600160a01b03928316815291831660208301527f8f30ab09f43a6c157d7fce7e0a13c003042c1c95e8a72e7a146a21c0caa24dc9910160405180910390a1609e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610e8f61293b613ed2565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6040805180820190915260008082526020820152600080806129ac600080516020615f0c83398151915286615a63565b90505b6129b881613ff9565b9093509150600080516020615f0c8339815191528283098314156129f2576040805180820190915290815260208101919091529392505050565b600080516020615f0c8339815191526001820890506129af565b600080612a188461407b565b90508015612abe578260ff168460018651612a339190615941565b81518110612a4357612a436156fa565b016020015160f81c10612abe5760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610849565b9392505050565b6096546000908190612adf9060019060ff1681901b615941565b9050612abe6001600160c01b0384811690831681161490565b60ff8216600081815260976020908152604091829020845181548684018051888701805163ffffffff90951665ffffffffffff199094168417600160201b61ffff938416021767ffff0000000000001916600160301b95831695909502949094179094558551918252518316938101939093525116918101919091527f3ee6fe8d54610244c3e9d3c066ae4aee997884aa28f10616ae821925401318ac9060600160405180910390a25050565b6001600160a01b0382166000908152609960205260409020805460018083015460ff166002811115612bd957612bd9614d8a565b14612c465760405162461bcd60e51b81526020600482015260436024820152600080516020615f2c83398151915260448201527f70657261746f723a206f70657261746f72206973206e6f7420726567697374656064820152621c995960ea1b608482015260a401610849565b609654600090612c5a90859060ff16612a0c565b90506000612c6783612545565b90506001600160c01b038216612cd35760405162461bcd60e51b815260206004820152603b6024820152600080516020615f2c83398151915260448201527f70657261746f723a206269746d61702063616e6e6f74206265203000000000006064820152608401610849565b612cdc82612ac5565b612d475760405162461bcd60e51b81526020600482015260426024820152600080516020615f2c83398151915260448201527f70657261746f723a20736f6d652071756f72756d7320646f206e6f74206578696064820152611cdd60f21b608482015260a401610849565b612d5e6001600160c01b0383811690831681161490565b612de45760405162461bcd60e51b81526020600482015260596024820152600080516020615f2c83398151915260448201527f70657261746f723a206f70657261746f72206973206e6f74207265676973746560648201527f72656420666f72207370656369666965642071756f72756d7300000000000000608482015260a401610849565b6001600160c01b0382811619821616612dfd8482614208565b6001600160c01b038116612ecc5760018501805460ff191660021790556040516351b27a6d60e11b81526001600160a01b0388811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a364f4da90602401600060405180830381600087803b158015612e7d57600080fd5b505af1158015612e91573d6000803e3d6000fd5b50506040518692506001600160a01b038a1691507f396fdcb180cb0fea26928113fb0fd1c3549863f9cd563e6a184f1d578116c8e490600090a35b60405163f4e24fe560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f4e24fe590612f1a908a908a90600401615a77565b600060405180830381600087803b158015612f3457600080fd5b505af1158015612f48573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016925063bd29b8cd9150612f9a9087908a90600401615a9b565b600060405180830381600087803b158015612fb457600080fd5b505af1158015612fc8573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016925063bd29b8cd915061301a9087908a90600401615a9b565b600060405180830381600087803b15801561303457600080fd5b505af1158015613048573d6000803e3d6000fd5b5050505050505050505050565b606480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040516309aa152760e11b81526001600160a01b0383811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906313542a4e90602401602060405180830381865afa158015613112573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131369190615ab4565b905080610e8f577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bf79ce58848461317787610f43565b6040518463ffffffff1660e01b815260040161319593929190615acd565b6020604051808303816000875af11580156131b4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612abe9190615ab4565b6020808201516000908152609a909152604090205460ff161561327e5760405162461bcd60e51b815260206004820152605260248201527f5265676973747279436f6f7264696e61746f722e5f766572696679436875726e60448201527f417070726f7665725369676e61747572653a20636875726e417070726f766572606482015271081cd85b1d08185b1c9958591e481d5cd95960721b608482015260a401610849565b42816040015110156133135760405162461bcd60e51b815260206004820152605260248201527f5265676973747279436f6f7264696e61746f722e5f766572696679436875726e60448201527f417070726f7665725369676e61747572653a20636875726e417070726f766572606482015271081cda59db985d1d5c9948195e1c1a5c995960721b608482015260a401610849565b602080820180516000908152609a909252604091829020805460ff19166001179055609d5490519183015161171e926001600160a01b039092169161335b91879187916123a2565b83516143c8565b61338660405180606001604052806060815260200160608152602001606081525090565b60006133ce86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff169150612a0c9050565b905060006133db88612545565b90506001600160c01b0382166134595760405162461bcd60e51b815260206004820152603960248201527f5265676973747279436f6f7264696e61746f722e5f72656769737465724f706560448201527f7261746f723a206269746d61702063616e6e6f742062652030000000000000006064820152608401610849565b61346282612ac5565b6134d6576040805162461bcd60e51b81526020600482015260248101919091527f5265676973747279436f6f7264696e61746f722e5f72656769737465724f706560448201527f7261746f723a20736f6d652071756f72756d7320646f206e6f742065786973746064820152608401610849565b8082166001600160c01b03161561358c5760405162461bcd60e51b815260206004820152606860248201527f5265676973747279436f6f7264696e61746f722e5f72656769737465724f706560448201527f7261746f723a206f70657261746f7220616c726561647920726567697374657260648201527f656420666f7220736f6d652071756f72756d73206265696e672072656769737460848201526732b932b2103337b960c11b60a482015260c401610849565b6001600160c01b03818116908316176135a58982614208565b887fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa876040516135d59190615799565b60405180910390a260016001600160a01b038b1660009081526099602052604090206001015460ff16600281111561360f5761360f614d8a565b14613728576040805180820182528a8152600160208083018281526001600160a01b038f166000908152609990925293902082518155925183820180549394939192909160ff19169083600281111561366a5761366a614d8a565b021790555050604051639926ee7d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169150639926ee7d906136bf908d908990600401615b4c565b600060405180830381600087803b1580156136d957600080fd5b505af11580156136ed573d6000803e3d6000fd5b50506040518b92506001600160a01b038d1691507fe8e68cef1c3a761ed7be7e8463a375f27f7bc335e51824223cacce636ec5c3fe90600090a35b604051631fd93ca960e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633fb2795290613778908d908c908c90600401615bc0565b600060405180830381600087803b15801561379257600080fd5b505af11580156137a6573d6000803e3d6000fd5b5050604051632550477760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169250632550477791506137fc908d908d908d908d90600401615be5565b6000604051808303816000875af115801561381b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526138439190810190615c7b565b60408087019190915260208601919091525162bff04d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169062bff04d906138a0908c908c908c90600401615cde565b6000604051808303816000875af11580156138bf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526138e79190810190615cf8565b84525050509695505050505050565b6020808301516001600160a01b0380821660008181526099909452604090932054919290871614156139765760405162461bcd60e51b81526020600482015260356024820152600080516020615eec83398151915260448201527439371d1031b0b73737ba1031b43ab9371039b2b63360591b6064820152608401610849565b8760ff16846000015160ff16146139f35760405162461bcd60e51b81526020600482015260476024820152600080516020615eec83398151915260448201527f726e3a2071756f72756d4e756d626572206e6f74207468652073616d65206173606482015266081cda59db995960ca1b608482015260a401610849565b604051635401ed2760e01b81526004810182905260ff891660248201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635401ed2790604401602060405180830381865afa158015613a64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a889190615d91565b9050613a948185614582565b6001600160601b0316866001600160601b031611613b275760405162461bcd60e51b81526020600482015260566024820152600080516020615eec83398151915260448201527f726e3a20696e636f6d696e67206f70657261746f722068617320696e7375666660648201527534b1b4b2b73a1039ba30b5b2903337b91031b43ab93760511b608482015260a401610849565b613b3188856145a6565b6001600160601b0316816001600160601b0316106123215760405162461bcd60e51b815260206004820152605c6024820152600080516020615eec83398151915260448201527f726e3a2063616e6e6f74206b69636b206f70657261746f722077697468206d6f60648201527f7265207468616e206b69636b424950734f66546f74616c5374616b6500000000608482015260a401610849565b60965460ff1660c08110613c3f5760405162461bcd60e51b815260206004820152603560248201527f5265676973747279436f6f7264696e61746f722e63726561746551756f72756d6044820152740e881b585e081c5d5bdc9d5b5cc81c995858da1959605a1b6064820152608401610849565b613c4a816001615dae565b6096805460ff191660ff9290921691909117905580613c698186612af8565b60405160016296b58960e01b031981526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ff694a7790613cbc90849088908890600401615dd3565b600060405180830381600087803b158015613cd657600080fd5b505af1158015613cea573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506326d941f29150602401600060405180830381600087803b158015613d5257600080fd5b505af1158015613d66573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506326d941f29150602401600060405180830381600087803b158015613dce57600080fd5b505af1158015612321573d6000803e3d6000fd5b6000546201000090046001600160a01b0316158015613e0957506001600160a01b03821615155b613e8b5760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610849565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2613ece826126f8565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015613f2b57507f000000000000000000000000000000000000000000000000000000000000000046145b15613f5557507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b60008080600080516020615f0c8339815191526003600080516020615f0c83398151915286600080516020615f0c83398151915288890909089050600061406f827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52600080516020615f0c8339815191526145c0565b91959194509092505050565b6000610100825111156141045760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610849565b815161411257506000919050565b60008083600081518110614128576141286156fa565b0160200151600160f89190911c81901b92505b84518110156141ff57848181518110614156576141566156fa565b0160200151600160f89190911c1b91508282116141eb5760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610849565b918117916141f881615726565b905061413b565b50909392505050565b600082815260986020526040902054806142ad576000838152609860209081526040808320815160608101835263ffffffff43811682528185018681526001600160c01b03808a16958401958652845460018101865594885295909620915191909201805495519351909416600160401b026001600160401b03938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055505050565b60008381526098602052604081206142c6600184615941565b815481106142d6576142d66156fa565b600091825260209091200180549091504363ffffffff9081169116141561431a5780546001600160401b0316600160401b6001600160c01b03851602178155610930565b805463ffffffff438116600160201b81810267ffffffff0000000019909416939093178455600087815260986020908152604080832081516060810183529485528483018481526001600160c01b03808c1693870193845282546001810184559286529390942094519401805493519151909216600160401b026001600160401b0391861690960267ffffffffffffffff199093169390941692909217179190911691909117905550505050565b6001600160a01b0383163b156144e257604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906144089086908690600401615a9b565b602060405180830381865afa158015614425573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144499190615e4c565b6001600160e01b0319161461171e5760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610849565b826001600160a01b03166144f6838361466f565b6001600160a01b03161461171e5760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610849565b60208101516000906127109061459c9061ffff1685615e76565b612abe9190615ea5565b60408101516000906127109061459c9061ffff1685615e76565b6000806145cb6149dc565b6145d36149fa565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa925082801561461457614616565bfe5b50826146645760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610849565b505195945050505050565b600080600061467e858561468b565b91509150611fa6816146fb565b6000808251604114156146c25760208301516040840151606085015160001a6146b6878285856148b6565b945094505050506146f4565b8251604014156146ec57602083015160408401516146e18683836149a3565b9350935050506146f4565b506000905060025b9250929050565b600081600481111561470f5761470f614d8a565b14156147185750565b600181600481111561472c5761472c614d8a565b141561477a5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610849565b600281600481111561478e5761478e614d8a565b14156147dc5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610849565b60038160048111156147f0576147f0614d8a565b14156148495760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610849565b600481600481111561485d5761485d614d8a565b1415610cc45760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610849565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156148ed575060009050600361499a565b8460ff16601b1415801561490557508460ff16601c14155b15614916575060009050600461499a565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561496a573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166149935760006001925092505061499a565b9150600090505b94509492505050565b6000806001600160ff1b038316816149c060ff86901c601b6158e3565b90506149ce878288856148b6565b935093505050935093915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60008083601f840112614a2a57600080fd5b5081356001600160401b03811115614a4157600080fd5b6020830191508360208260051b85010111156146f457600080fd5b60008060208385031215614a6f57600080fd5b82356001600160401b03811115614a8557600080fd5b614a9185828601614a18565b90969095509350505050565b600060208284031215614aaf57600080fd5b5035919050565b63ffffffff81168114610cc457600080fd5b600080600060608486031215614add57600080fd5b833592506020840135614aef81614ab6565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b0381118282101715614b3857614b38614b00565b60405290565b604080519081016001600160401b0381118282101715614b3857614b38614b00565b604051601f8201601f191681016001600160401b0381118282101715614b8857614b88614b00565b604052919050565b60006001600160401b03831115614ba957614ba9614b00565b614bbc601f8401601f1916602001614b60565b9050828152838383011115614bd057600080fd5b828260208301376000602084830101529392505050565b600060208284031215614bf957600080fd5b81356001600160401b03811115614c0f57600080fd5b8201601f81018413614c2057600080fd5b614c2f84823560208401614b90565b949350505050565b6001600160a01b0381168114610cc457600080fd5b8035614c5781614c37565b919050565b600060208284031215614c6e57600080fd5b8135612abe81614c37565b60008060408385031215614c8c57600080fd5b50508035926020909101359150565b803560ff81168114614c5757600080fd5b600060208284031215614cbe57600080fd5b612abe82614c9b565b815181526020808301519082015260408101610e8f565b60008083601f840112614cf057600080fd5b5081356001600160401b03811115614d0757600080fd5b6020830191508360208285010111156146f457600080fd5b60008060008060408587031215614d3557600080fd5b84356001600160401b0380821115614d4c57600080fd5b614d5888838901614a18565b90965094506020870135915080821115614d7157600080fd5b50614d7e87828801614cde565b95989497509550505050565b634e487b7160e01b600052602160045260246000fd5b60038110614dbe57634e487b7160e01b600052602160045260246000fd5b9052565b815181526020808301516040830191614ddd90840182614da0565b5092915050565b803561ffff81168114614c5757600080fd5b600060608284031215614e0857600080fd5b614e10614b16565b90508135614e1d81614ab6565b8152614e2b60208301614de4565b6020820152614e3c60408301614de4565b604082015292915050565b60008060808385031215614e5a57600080fd5b614e6383614c9b565b9150614e728460208501614df6565b90509250929050565b600080600060408486031215614e9057600080fd5b8335614e9b81614c37565b925060208401356001600160401b03811115614eb657600080fd5b614ec286828701614cde565b9497909650939450505050565b60006101008284031215614ee257600080fd5b50919050565b60008083601f840112614efa57600080fd5b5081356001600160401b03811115614f1157600080fd5b6020830191508360208260061b85010111156146f457600080fd5b600060608284031215614f3e57600080fd5b614f46614b16565b905081356001600160401b03811115614f5e57600080fd5b8201601f81018413614f6f57600080fd5b614f7e84823560208401614b90565b825250602082013560208201526040820135604082015292915050565b60008060008060008060008060006101a08a8c031215614fba57600080fd5b89356001600160401b0380821115614fd157600080fd5b614fdd8d838e01614cde565b909b50995060208c0135915080821115614ff657600080fd5b6150028d838e01614cde565b90995097508791506150178d60408e01614ecf565b96506101408c013591508082111561502e57600080fd5b61503a8d838e01614ee8565b90965094506101608c013591508082111561505457600080fd5b6150608d838e01614f2c565b93506101808c013591508082111561507757600080fd5b506150848c828d01614f2c565b9150509295985092959850929598565b60008060008060008061016087890312156150ae57600080fd5b86356001600160401b03808211156150c557600080fd5b6150d18a838b01614cde565b909850965060208901359150808211156150ea57600080fd5b6150f68a838b01614cde565b909650945084915061510b8a60408b01614ecf565b935061014089013591508082111561512257600080fd5b5061512f89828a01614f2c565b9150509295509295509295565b60006001600160401b0382111561515557615155614b00565b5060051b60200190565b6000806040838503121561517257600080fd5b823561517d81614ab6565b91506020838101356001600160401b0381111561519957600080fd5b8401601f810186136151aa57600080fd5b80356151bd6151b88261513c565b614b60565b81815260059190911b820183019083810190888311156151dc57600080fd5b928401925b828410156151fa578335825292840192908401906151e1565b80955050505050509250929050565b6020808252825182820181905260009190848201906040850190845b8181101561524757835163ffffffff1683529284019291840191600101615225565b50909695505050505050565b6000806020838503121561526657600080fd5b82356001600160401b0381111561527c57600080fd5b614a9185828601614cde565b6001600160601b0381168114610cc457600080fd5b600082601f8301126152ae57600080fd5b813560206152be6151b88361513c565b82815260069290921b840181019181810190868411156152dd57600080fd5b8286015b8481101561532e57604081890312156152fa5760008081fd5b615302614b3e565b813561530d81614c37565b81528185013561531c81615288565b818601528352918301916040016152e1565b509695505050505050565b600080600060a0848603121561534e57600080fd5b6153588585614df6565b9250606084013561536881615288565b915060808401356001600160401b0381111561538357600080fd5b61538f8682870161529d565b9150509250925092565b600082601f8301126153aa57600080fd5b813560206153ba6151b88361513c565b828152606092830285018201928282019190878511156153d957600080fd5b8387015b858110156153fc576153ef8982614df6565b84529284019281016153dd565b5090979650505050505050565b600082601f83011261541a57600080fd5b8135602061542a6151b88361513c565b82815260059290921b8401810191818101908684111561544957600080fd5b8286015b8481101561532e57803561546081615288565b835291830191830161544d565b600082601f83011261547e57600080fd5b8135602061548e6151b88361513c565b82815260059290921b840181019181810190868411156154ad57600080fd5b8286015b8481101561532e5780356001600160401b038111156154d05760008081fd5b6154de8986838b010161529d565b8452509183019183016154b1565b600080600080600080600080610100898b03121561550957600080fd5b61551289614c4c565b975061552060208a01614c4c565b965061552e60408a01614c4c565b955061553c60608a01614c4c565b94506080890135935060a08901356001600160401b038082111561555f57600080fd5b61556b8c838d01615399565b945060c08b013591508082111561558157600080fd5b61558d8c838d01615409565b935060e08b01359150808211156155a357600080fd5b506155b08b828c0161546d565b9150509295985092959890939650565b6000604082840312156155d257600080fd5b6155da614b3e565b90506155e582614c9b565b815260208201356155f581614c37565b602082015292915050565b6000806000806080858703121561561657600080fd5b843593506020808601356001600160401b0381111561563457600080fd5b8601601f8101881361564557600080fd5b80356156536151b88261513c565b81815260069190911b8201830190838101908a83111561567257600080fd5b928401925b8284101561569b576156898b856155c0565b82528482019150604084019350615677565b979a97995050505060408601359560600135949350505050565b60208101610e8f8284614da0565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060001982141561573a5761573a615710565b5060010190565b60005b8381101561575c578181015183820152602001615744565b838111156109305750506000910152565b60008151808452615785816020860160208601615741565b601f01601f19169290920160200192915050565b602081526000612abe602083018461576d565b6000602082840312156157be57600080fd5b8151612abe81614c37565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561582557600080fd5b81518015158114612abe57600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000808335601e1984360301811261589457600080fd5b8301803591506001600160401b038211156158ae57600080fd5b6020019150600581901b36038213156146f457600080fd5b6000602082840312156158d857600080fd5b8151612abe81614ab6565b600082198211156158f6576158f6615710565b500190565b6000808585111561590b57600080fd5b8386111561591857600080fd5b5050820193919092039150565b60006040828403121561593757600080fd5b612abe83836155c0565b60008282101561595357615953615710565b500390565b600060a0820187835260208781850152604060a08186015282885180855260c087019150838a01945060005b818110156159b5578551805160ff1684528501516001600160a01b0316858401529484019491830191600101615984565b5050606086019790975250505050608001529392505050565b600083516159e0818460208801615741565b6001600160f81b0319939093169190920190815260010192915050565b60018060a01b03841681528260208201526060604082015260006123e0606083018461576d565b600060208284031215615a3657600080fd5b81516001600160c01b0381168114612abe57600080fd5b634e487b7160e01b600052601260045260246000fd5b600082615a7257615a72615a4d565b500690565b6001600160a01b0383168152604060208201819052600090614c2f9083018461576d565b828152604060208201526000614c2f604083018461576d565b600060208284031215615ac657600080fd5b5051919050565b6001600160a01b03841681526101608101615af5602083018580358252602090810135910152565b615b0f606083016040860180358252602090810135910152565b60406080850160a084013760e0820160008152604060c0860182375060006101208301908152835190526020909201516101409091015292915050565b60018060a01b0383168152604060208201526000825160606040840152615b7660a084018261576d565b90506020840151606084015260408401516080840152809150509392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b03841681526040602082018190526000906123e09083018486615b97565b60018060a01b0385168152836020820152606060408201526000615c0d606083018486615b97565b9695505050505050565b600082601f830112615c2857600080fd5b81516020615c386151b88361513c565b82815260059290921b84018101918181019086841115615c5757600080fd5b8286015b8481101561532e578051615c6e81615288565b8352918301918301615c5b565b60008060408385031215615c8e57600080fd5b82516001600160401b0380821115615ca557600080fd5b615cb186838701615c17565b93506020850151915080821115615cc757600080fd5b50615cd485828601615c17565b9150509250929050565b8381526040602082015260006123e0604083018486615b97565b60006020808385031215615d0b57600080fd5b82516001600160401b03811115615d2157600080fd5b8301601f81018513615d3257600080fd5b8051615d406151b88261513c565b81815260059190911b82018301908381019087831115615d5f57600080fd5b928401925b82841015615d86578351615d7781614ab6565b82529284019290840190615d64565b979650505050505050565b600060208284031215615da357600080fd5b8151612abe81615288565b600060ff821660ff84168060ff03821115615dcb57615dcb615710565b019392505050565b60006060820160ff8616835260206001600160601b03808716828601526040606081870152838751808652608088019150848901955060005b81811015615e3c57865180516001600160a01b031684528601518516868401529585019591830191600101615e0c565b50909a9950505050505050505050565b600060208284031215615e5e57600080fd5b81516001600160e01b031981168114612abe57600080fd5b60006001600160601b0380831681851681830481118215151615615e9c57615e9c615710565b02949350505050565b60006001600160601b0380841680615ebf57615ebf615a4d565b9216919091049291505056fe5265676973747279436f6f7264696e61746f722e7570646174654f70657261745265676973747279436f6f7264696e61746f722e5f76616c696461746543687530644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd475265676973747279436f6f7264696e61746f722e5f646572656769737465724fa2646970667358221220286afd6e02bf84255547edeabc5359e76627fd64f60687f4d864fc376ca7f73164736f6c634300080c0033","sourceMap":"1625:39194:29:-:0;;;5295:425;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2455:602:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2455:602:90;;;;2541:22;;;;2778:25;;;;2597;2813:31;;;;2873:13;2854:32;;2455:602;;;2651:117;2923:58;2651:117;2541:22;2597:25;3633:73;;;;;;1251:25:108;;;1292:18;;;1285:34;;;1335:18;;;1328:34;;;3677:13:90;1378:18:108;;;1371:34;3700:4:90;1421:19:108;;;1414:61;3597:7:90;;1223:19:108;;3633:73:90;;;;;;;;;;;;3623:84;;;;;;3616:91;;3457:257;;;;;;2923:58;2896:85;;3014:4;2991:28;;3029:21;;-1:-1:-1;;;;;;;;;5526:32:29;;::::1;;::::0;5568:30;;::::1;;::::0;5608:32;;::::1;;::::0;5650:30;::::1;;::::0;5691:22:::1;:20;:22::i;:::-;5295:425:::0;;;;1625:39194;;5388:279:69;5456:13;;;;;;;5455:14;5447:66;;;;-1:-1:-1;;;5447:66:69;;1688:2:108;5447:66:69;;;1670:21:108;1727:2;1707:18;;;1700:30;1766:34;1746:18;;;1739:62;-1:-1:-1;;;1817:18:108;;;1810:37;1864:19;;5447:66:69;;;;;;;;5527:12;;5542:15;5527:12;;;:30;5523:138;;;5573:12;:30;;-1:-1:-1;;5573:30:69;5588:15;5573:30;;;;;;5622:28;;2036:36:108;;;5622:28:69;;2024:2:108;2009:18;5622:28:69;;;;;;;5523:138;5388:279::o;14:148:108:-;-1:-1:-1;;;;;106:31:108;;96:42;;86:70;;152:1;149;142:12;86:70;14:148;:::o;167:820::-;362:6;370;378;386;439:3;427:9;418:7;414:23;410:33;407:53;;;456:1;453;446:12;407:53;488:9;482:16;507:48;549:5;507:48;:::i;:::-;624:2;609:18;;603:25;574:5;;-1:-1:-1;637:50:108;603:25;637:50;:::i;:::-;758:2;743:18;;737:25;706:7;;-1:-1:-1;771:50:108;737:25;771:50;:::i;:::-;892:2;877:18;;871:25;840:7;;-1:-1:-1;905:50:108;871:25;905:50;:::i;:::-;167:820;;;;-1:-1:-1;167:820:108;;-1:-1:-1;;167:820:108:o;1894:184::-;1625:39194:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106102945760003560e01c80635df4594611610167578063a50857bf116100ce578063dd8283f311610087578063dd8283f3146106f5578063e65797ad14610708578063f2fde38b146107ab578063f8581191146107be578063fabc1cbc146107d1578063fd39105a146107e457600080fd5b8063a50857bf1461066d578063c391425e14610680578063ca0de882146106a0578063ca4f2d97146106c7578063d72d8dd6146106da578063d75b4c88146106e257600080fd5b8063886f119511610120578063886f1195146105cc5780638da5cb5b146105e55780639aa1653d146105ed5780639b5d177b1461060c5780639e9923c21461061f5780639feab8591461064657600080fd5b80635df459461461053d5780636347c9001461056457806368304835146105775780636e3b17db1461059e578063715018a6146105b1578063871ef049146105b957600080fd5b806328f61b311161020b5780635140a548116101c45780635140a548146104c85780635865c60c146104db578063595c6a67146104fb5780635ac86ab7146105035780635b0b829f146105225780635c975abb1461053557600080fd5b806328f61b3114610435578063296bb0641461044857806329d1e0c31461045b5780632cdd1e861461046e5780633998fdd3146104815780633c2a7f4c146104a857600080fd5b806310d67a2f1161025d57806310d67a2f1461034a57806313542a4e1461035d578063136439dd146103865780631478851f146103995780631eb812da146103cc578063249a0c421461041557600080fd5b8062cf2ab51461029957806303fd3492146102ae57806304ec6351146102e1578063054310e61461030c5780630cf4b76714610337575b600080fd5b6102ac6102a7366004614a5c565b610820565b005b6102ce6102bc366004614a9d565b60009081526098602052604090205490565b6040519081526020015b60405180910390f35b6102f46102ef366004614ac8565b610936565b6040516001600160c01b0390911681526020016102d8565b609d5461031f906001600160a01b031681565b6040516001600160a01b0390911681526020016102d8565b6102ac610345366004614be7565b610b2c565b6102ac610358366004614c5c565b610c14565b6102ce61036b366004614c5c565b6001600160a01b031660009081526099602052604090205490565b6102ac610394366004614a9d565b610cc7565b6103bc6103a7366004614a9d565b609a6020526000908152604090205460ff1681565b60405190151581526020016102d8565b6103df6103da366004614c79565b610e04565b60408051825163ffffffff908116825260208085015190911690820152918101516001600160c01b0316908201526060016102d8565b6102ce610423366004614cac565b609b6020526000908152604090205481565b609e5461031f906001600160a01b031681565b61031f610456366004614a9d565b610e95565b6102ac610469366004614c5c565b610f21565b6102ac61047c366004614c5c565b610f32565b61031f7f000000000000000000000000000000000000000000000000000000000000000081565b6104bb6104b6366004614c5c565b610f43565b6040516102d89190614cc7565b6102ac6104d6366004614d1f565b610fc2565b6104ee6104e9366004614c5c565b61154c565b6040516102d89190614dc2565b6102ac6115c0565b6103bc610511366004614cac565b6001805460ff9092161b9081161490565b6102ac610530366004614e47565b61168c565b6001546102ce565b61031f7f000000000000000000000000000000000000000000000000000000000000000081565b61031f610572366004614a9d565b611723565b61031f7f000000000000000000000000000000000000000000000000000000000000000081565b6102ac6105ac366004614e7b565b61174d565b6102ac61180d565b6102f46105c7366004614a9d565b611821565b60005461031f906201000090046001600160a01b031681565b61031f61182c565b6096546105fa9060ff1681565b60405160ff90911681526020016102d8565b6102ac61061a366004614f9b565b611845565b61031f7f000000000000000000000000000000000000000000000000000000000000000081565b6102ce7f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de681565b6102ac61067b366004615094565b611b7c565b61069361068e36600461515f565b611d00565b6040516102d89190615209565b6102ce7ff843b3116d574f43e69f8dda5d93ebf11dccc4a465983f9453058005cd6b34a081565b6102ac6106d5366004615253565b611fae565b609c546102ce565b6102ac6106f0366004615339565b612015565b6102ac6107033660046154ec565b612028565b610777610716366004614cac565b60408051606080820183526000808352602080840182905292840181905260ff9490941684526097825292829020825193840183525463ffffffff8116845261ffff600160201b8204811692850192909252600160301b9004169082015290565b60408051825163ffffffff16815260208084015161ffff9081169183019190915292820151909216908201526060016102d8565b6102ac6107b9366004614c5c565b61232c565b6102ce6107cc366004615600565b6123a2565b6102ac6107df366004614a9d565b6123e9565b6108136107f2366004614c5c565b6001600160a01b031660009081526099602052604090206001015460ff1690565b6040516102d891906156b5565b600154600290600490811614156108525760405162461bcd60e51b8152600401610849906156c3565b60405180910390fd5b60005b82811015610930576000848483818110610871576108716156fa565b90506020020160208101906108869190614c5c565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff1660028111156108d1576108d1614d8a565b60028111156108e2576108e2614d8a565b905250805190915060006108f582612545565b9050600061090b826001600160c01b03166125ae565b905061091885858361260b565b5050505050808061092890615726565b915050610855565b50505050565b6000838152609860205260408120805482919084908110610959576109596156fa565b600091825260209182902060408051606081018252929091015463ffffffff808216808552600160201b8304821695850195909552600160401b9091046001600160c01b03169183019190915290925085161015610a535760405162461bcd60e51b815260206004820152606560248201527f5265676973747279436f6f7264696e61746f722e67657451756f72756d42697460448201527f6d61704174426c6f636b4e756d6265724279496e6465783a2071756f72756d4260648201527f69746d61705570646174652069732066726f6d20616674657220626c6f636b4e6084820152643ab6b132b960d91b60a482015260c401610849565b602081015163ffffffff161580610a795750806020015163ffffffff168463ffffffff16105b610b205760405162461bcd60e51b815260206004820152606660248201527f5265676973747279436f6f7264696e61746f722e67657451756f72756d42697460448201527f6d61704174426c6f636b4e756d6265724279496e6465783a2071756f72756d4260648201527f69746d61705570646174652069732066726f6d206265666f726520626c6f636b608482015265273ab6b132b960d11b60a482015260c401610849565b60400151949350505050565b60013360009081526099602052604090206001015460ff166002811115610b5557610b55614d8a565b14610bc85760405162461bcd60e51b815260206004820152603c60248201527f5265676973747279436f6f7264696e61746f722e757064617465536f636b657460448201527f3a206f70657261746f72206973206e6f742072656769737465726564000000006064820152608401610849565b33600090815260996020526040908190205490517fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa90610c09908490615799565b60405180910390a250565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8b91906157ac565b6001600160a01b0316336001600160a01b031614610cbb5760405162461bcd60e51b8152600401610849906157c9565b610cc4816126f8565b50565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610d14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d389190615813565b610d545760405162461bcd60e51b815260040161084990615835565b60015481811614610dcd5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610849565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d90602001610c09565b60408051606081018252600080825260208201819052918101919091526000838152609860205260409020805483908110610e4157610e416156fa565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160c01b03600160401b909304929092169082015290505b92915050565b6040516308f6629d60e31b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906347b314e890602401602060405180830381865afa158015610efd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8f91906157ac565b610f296127fd565b610cc48161285c565b610f3a6127fd565b610cc4816128c5565b6040805180820190915260008082526020820152610e8f610fbd7f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de684604051602001610fa29291909182526001600160a01b0316602082015260400190565b6040516020818303038152906040528051906020012061292e565b61297c565b60015460029060049081161415610feb5760405162461bcd60e51b8152600401610849906156c3565b600061103384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff169150612a0c9050565b905061103e81612ac5565b6110ae5760405162461bcd60e51b81526020600482015260476024820152600080516020615ecc83398151915260448201527f6f7273466f7251756f72756d3a20736f6d652071756f72756d7320646f206e6f6064820152661d08195e1a5cdd60ca1b608482015260a401610849565b84831461111d5760405162461bcd60e51b81526020600482015260436024820152600080516020615ecc83398151915260448201527f6f7273466f7251756f72756d3a20696e707574206c656e677468206d69736d616064820152620e8c6d60eb1b608482015260a401610849565b60005b8381101561154357600085858381811061113c5761113c6156fa565b919091013560f81c9150369050600089898581811061115d5761115d6156fa565b905060200281019061116f919061587d565b6040516379a0849160e11b815260ff8616600482015291935091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f341092290602401602060405180830381865afa1580156111db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ff91906158c6565b63ffffffff16811461129b5760405162461bcd60e51b81526020600482015260656024820152600080516020615ecc83398151915260448201527f6f7273466f7251756f72756d3a206e756d626572206f6620757064617465642060648201527f6f70657261746f727320646f6573206e6f74206d617463682071756f72756d206084820152641d1bdd185b60da1b60a482015260c401610849565b6000805b828110156114e25760008484838181106112bb576112bb6156fa565b90506020020160208101906112d09190614c5c565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff16600281111561131b5761131b614d8a565b600281111561132c5761132c614d8a565b9052508051909150600061133f82612545565b905060016001600160c01b03821660ff8b161c8116146113c35760405162461bcd60e51b815260206004820152604460248201819052600080516020615ecc833981519152908201527f6f7273466f7251756f72756d3a206f70657261746f72206e6f7420696e2071756064820152636f72756d60e01b608482015260a401610849565b856001600160a01b0316846001600160a01b03161161146e5760405162461bcd60e51b81526020600482015260676024820152600080516020615ecc83398151915260448201527f6f7273466f7251756f72756d3a206f70657261746f7273206172726179206d7560648201527f737420626520736f7274656420696e20617363656e64696e6720616464726573608482015266399037b93232b960c91b60a482015260c401610849565b506114cc83838f8f8d908e600161148591906158e3565b92611492939291906158fb565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061260b92505050565b509092506114db905081615726565b905061129f565b5060ff84166000818152609b6020908152604091829020439081905591519182527f46077d55330763f16269fd75e5761663f4192d2791747c0189b16ad31db07db4910160405180910390a2505050508061153c90615726565b9050611120565b50505050505050565b60408051808201909152600080825260208201526001600160a01b0382166000908152609960209081526040918290208251808401909352805483526001810154909183019060ff1660028111156115a6576115a6614d8a565b60028111156115b7576115b7614d8a565b90525092915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa15801561160d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116319190615813565b61164d5760405162461bcd60e51b815260040161084990615835565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6116946127fd565b609654829060ff908116908216106117145760405162461bcd60e51b815260206004820152603760248201527f5265676973747279436f6f7264696e61746f722e71756f72756d45786973747360448201527f3a2071756f72756d20646f6573206e6f742065786973740000000000000000006064820152608401610849565b61171e8383612af8565b505050565b609c818154811061173357600080fd5b6000918252602090912001546001600160a01b0316905081565b609e546001600160a01b031633146117cd5760405162461bcd60e51b815260206004820152603a60248201527f5265676973747279436f6f7264696e61746f722e6f6e6c79456a6563746f723a60448201527f2063616c6c6572206973206e6f742074686520656a6563746f720000000000006064820152608401610849565b61171e8383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ba592505050565b6118156127fd565b61181f6000613055565b565b6000610e8f82612545565b60006118406064546001600160a01b031690565b905090565b60018054600091908116141561186d5760405162461bcd60e51b8152600401610849906156c3565b8389146118f05760405162461bcd60e51b8152602060048201526044602482018190527f5265676973747279436f6f7264696e61746f722e72656769737465724f706572908201527f61746f7257697468436875726e3a20696e707574206c656e677468206d69736d6064820152630c2e8c6d60e31b608482015260a401610849565b60006118fc33886130a7565b905061195b818787808060200260200160405190810160405280939291908181526020016000905b828210156119505761194160408302860136819003810190615925565b81526020019060010190611924565b5050505050866131d8565b60006119a233838e8e8e8e8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250613362915050565b905060005b8b811015611b6d576000609760008f8f858181106119c7576119c76156fa565b919091013560f81c82525060208082019290925260409081016000208151606081018352905463ffffffff811680835261ffff600160201b8304811695840195909552600160301b90910490931691810191909152845180519193509084908110611a3457611a346156fa565b602002602001015163ffffffff161115611b5a57611ad58e8e84818110611a5d57611a5d6156fa565b9050013560f81c60f81b60f81c84604001518481518110611a8057611a806156fa565b60200260200101513386602001518681518110611a9f57611a9f6156fa565b60200260200101518d8d88818110611ab957611ab96156fa565b905060400201803603810190611acf9190615925565b866138f6565b611b5a898984818110611aea57611aea6156fa565b9050604002016020016020810190611b029190614c5c565b8f8f8590866001611b1391906158e3565b92611b20939291906158fb565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ba592505050565b5080611b6581615726565b9150506119a7565b50505050505050505050505050565b600180546000919081161415611ba45760405162461bcd60e51b8152600401610849906156c3565b6000611bb033856130a7565b90506000611bf933838b8b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250613362915050565b51905060005b88811015611cf45760008a8a83818110611c1b57611c1b6156fa565b919091013560f81c600081815260976020526040902054855191935063ffffffff169150849084908110611c5157611c516156fa565b602002602001015163ffffffff161115611ce15760405162461bcd60e51b8152602060048201526044602482018190527f5265676973747279436f6f7264696e61746f722e72656769737465724f706572908201527f61746f723a206f70657261746f7220636f756e742065786365656473206d6178606482015263696d756d60e01b608482015260a401610849565b5080611cec81615726565b915050611bff565b50505050505050505050565b6060600082516001600160401b03811115611d1d57611d1d614b00565b604051908082528060200260200182016040528015611d46578160200160208202803683370190505b50905060005b8351811015611fa657600060986000868481518110611d6d57611d6d6156fa565b6020026020010151815260200190815260200160002080549050905060005b81811015611f91578663ffffffff1660986000888681518110611db157611db16156fa565b6020026020010151815260200190815260200160002060018385611dd59190615941565b611ddf9190615941565b81548110611def57611def6156fa565b60009182526020909120015463ffffffff1611611f7f57600060986000888681518110611e1e57611e1e6156fa565b6020026020010151815260200190815260200160002060018385611e429190615941565b611e4c9190615941565b81548110611e5c57611e5c6156fa565b600091825260209091200154600160201b900463ffffffff169050801580611e8f57508763ffffffff168163ffffffff16115b611f375760405162461bcd60e51b815260206004820152606760248201527f5265676973747279436f6f7264696e61746f722e67657451756f72756d42697460448201527f6d6170496e64696365734174426c6f636b4e756d6265723a206f70657261746f60648201527f72496420686173206e6f2071756f72756d4269746d61707320617420626c6f6360848201526635a73ab6b132b960c91b60a482015260c401610849565b6001611f438385615941565b611f4d9190615941565b858581518110611f5f57611f5f6156fa565b602002602001019063ffffffff16908163ffffffff168152505050611f91565b80611f8981615726565b915050611d8c565b50508080611f9e90615726565b915050611d4c565b509392505050565b6001805460029081161415611fd55760405162461bcd60e51b8152600401610849906156c3565b61171e3384848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ba592505050565b61201d6127fd565b61171e838383613bcb565b600054610100900460ff16158080156120485750600054600160ff909116105b806120625750303b158015612062575060005460ff166001145b6120c55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610849565b6000805460ff1916600117905580156120e8576000805461ff0019166101001790555b825184511480156120fa575081518351145b6121645760405162461bcd60e51b815260206004820152603560248201527f5265676973747279436f6f7264696e61746f722e696e697469616c697a653a206044820152740d2dce0eae840d8cadccee8d040dad2e6dac2e8c6d605b1b6064820152608401610849565b61216d89613055565b6121778686613de2565b6121808861285c565b612189876128c5565b609c80546001818101835560008381527faf85b9071dfafeac1409d3f1d19bafc9bc7c37974cde8df0ee6168f0086e539c92830180546001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166001600160a01b03199283161790925585548085018755850180547f0000000000000000000000000000000000000000000000000000000000000000841690831617905585549384019095559190920180547f000000000000000000000000000000000000000000000000000000000000000090921691909316179091555b84518110156122da576122c8858281518110612287576122876156fa565b60200260200101518583815181106122a1576122a16156fa565b60200260200101518584815181106122bb576122bb6156fa565b6020026020010151613bcb565b806122d281615726565b915050612269565b508015612321576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b6123346127fd565b6001600160a01b0381166123995760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610849565b610cc481613055565b60006123e07ff843b3116d574f43e69f8dda5d93ebf11dccc4a465983f9453058005cd6b34a086868686604051602001610fa2959493929190615958565b95945050505050565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561243c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061246091906157ac565b6001600160a01b0316336001600160a01b0316146124905760405162461bcd60e51b8152600401610849906157c9565b60015419811960015419161461250e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610849565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610c09565b600081815260986020526040812054806125625750600092915050565b600083815260986020526040902061257b600183615941565b8154811061258b5761258b6156fa565b600091825260209091200154600160401b90046001600160c01b03169392505050565b60606000805b610100811015612604576001811b9150838216156125f457828160f81b6040516020016125e29291906159ce565b60405160208183030381529060405292505b6125fd81615726565b90506125b4565b5050919050565b60018260200151600281111561262357612623614d8a565b1461262d57505050565b81516040516333567f7f60e11b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906366acfefe90612682908890869088906004016159fd565b6020604051808303816000875af11580156126a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126c59190615a24565b90506001600160c01b038116156126f1576126f1856126ec836001600160c01b03166125ae565b612ba5565b5050505050565b6001600160a01b0381166127865760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610849565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b3361280661182c565b6001600160a01b03161461181f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610849565b609d54604080516001600160a01b03928316815291831660208301527f315457d8a8fe60f04af17c16e2f5a5e1db612b31648e58030360759ef8f3528c910160405180910390a1609d80546001600160a01b0319166001600160a01b0392909216919091179055565b609e54604080516001600160a01b03928316815291831660208301527f8f30ab09f43a6c157d7fce7e0a13c003042c1c95e8a72e7a146a21c0caa24dc9910160405180910390a1609e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610e8f61293b613ed2565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6040805180820190915260008082526020820152600080806129ac600080516020615f0c83398151915286615a63565b90505b6129b881613ff9565b9093509150600080516020615f0c8339815191528283098314156129f2576040805180820190915290815260208101919091529392505050565b600080516020615f0c8339815191526001820890506129af565b600080612a188461407b565b90508015612abe578260ff168460018651612a339190615941565b81518110612a4357612a436156fa565b016020015160f81c10612abe5760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610849565b9392505050565b6096546000908190612adf9060019060ff1681901b615941565b9050612abe6001600160c01b0384811690831681161490565b60ff8216600081815260976020908152604091829020845181548684018051888701805163ffffffff90951665ffffffffffff199094168417600160201b61ffff938416021767ffff0000000000001916600160301b95831695909502949094179094558551918252518316938101939093525116918101919091527f3ee6fe8d54610244c3e9d3c066ae4aee997884aa28f10616ae821925401318ac9060600160405180910390a25050565b6001600160a01b0382166000908152609960205260409020805460018083015460ff166002811115612bd957612bd9614d8a565b14612c465760405162461bcd60e51b81526020600482015260436024820152600080516020615f2c83398151915260448201527f70657261746f723a206f70657261746f72206973206e6f7420726567697374656064820152621c995960ea1b608482015260a401610849565b609654600090612c5a90859060ff16612a0c565b90506000612c6783612545565b90506001600160c01b038216612cd35760405162461bcd60e51b815260206004820152603b6024820152600080516020615f2c83398151915260448201527f70657261746f723a206269746d61702063616e6e6f74206265203000000000006064820152608401610849565b612cdc82612ac5565b612d475760405162461bcd60e51b81526020600482015260426024820152600080516020615f2c83398151915260448201527f70657261746f723a20736f6d652071756f72756d7320646f206e6f74206578696064820152611cdd60f21b608482015260a401610849565b612d5e6001600160c01b0383811690831681161490565b612de45760405162461bcd60e51b81526020600482015260596024820152600080516020615f2c83398151915260448201527f70657261746f723a206f70657261746f72206973206e6f74207265676973746560648201527f72656420666f72207370656369666965642071756f72756d7300000000000000608482015260a401610849565b6001600160c01b0382811619821616612dfd8482614208565b6001600160c01b038116612ecc5760018501805460ff191660021790556040516351b27a6d60e11b81526001600160a01b0388811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a364f4da90602401600060405180830381600087803b158015612e7d57600080fd5b505af1158015612e91573d6000803e3d6000fd5b50506040518692506001600160a01b038a1691507f396fdcb180cb0fea26928113fb0fd1c3549863f9cd563e6a184f1d578116c8e490600090a35b60405163f4e24fe560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f4e24fe590612f1a908a908a90600401615a77565b600060405180830381600087803b158015612f3457600080fd5b505af1158015612f48573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016925063bd29b8cd9150612f9a9087908a90600401615a9b565b600060405180830381600087803b158015612fb457600080fd5b505af1158015612fc8573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016925063bd29b8cd915061301a9087908a90600401615a9b565b600060405180830381600087803b15801561303457600080fd5b505af1158015613048573d6000803e3d6000fd5b5050505050505050505050565b606480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040516309aa152760e11b81526001600160a01b0383811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906313542a4e90602401602060405180830381865afa158015613112573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131369190615ab4565b905080610e8f577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bf79ce58848461317787610f43565b6040518463ffffffff1660e01b815260040161319593929190615acd565b6020604051808303816000875af11580156131b4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612abe9190615ab4565b6020808201516000908152609a909152604090205460ff161561327e5760405162461bcd60e51b815260206004820152605260248201527f5265676973747279436f6f7264696e61746f722e5f766572696679436875726e60448201527f417070726f7665725369676e61747572653a20636875726e417070726f766572606482015271081cd85b1d08185b1c9958591e481d5cd95960721b608482015260a401610849565b42816040015110156133135760405162461bcd60e51b815260206004820152605260248201527f5265676973747279436f6f7264696e61746f722e5f766572696679436875726e60448201527f417070726f7665725369676e61747572653a20636875726e417070726f766572606482015271081cda59db985d1d5c9948195e1c1a5c995960721b608482015260a401610849565b602080820180516000908152609a909252604091829020805460ff19166001179055609d5490519183015161171e926001600160a01b039092169161335b91879187916123a2565b83516143c8565b61338660405180606001604052806060815260200160608152602001606081525090565b60006133ce86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff169150612a0c9050565b905060006133db88612545565b90506001600160c01b0382166134595760405162461bcd60e51b815260206004820152603960248201527f5265676973747279436f6f7264696e61746f722e5f72656769737465724f706560448201527f7261746f723a206269746d61702063616e6e6f742062652030000000000000006064820152608401610849565b61346282612ac5565b6134d6576040805162461bcd60e51b81526020600482015260248101919091527f5265676973747279436f6f7264696e61746f722e5f72656769737465724f706560448201527f7261746f723a20736f6d652071756f72756d7320646f206e6f742065786973746064820152608401610849565b8082166001600160c01b03161561358c5760405162461bcd60e51b815260206004820152606860248201527f5265676973747279436f6f7264696e61746f722e5f72656769737465724f706560448201527f7261746f723a206f70657261746f7220616c726561647920726567697374657260648201527f656420666f7220736f6d652071756f72756d73206265696e672072656769737460848201526732b932b2103337b960c11b60a482015260c401610849565b6001600160c01b03818116908316176135a58982614208565b887fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa876040516135d59190615799565b60405180910390a260016001600160a01b038b1660009081526099602052604090206001015460ff16600281111561360f5761360f614d8a565b14613728576040805180820182528a8152600160208083018281526001600160a01b038f166000908152609990925293902082518155925183820180549394939192909160ff19169083600281111561366a5761366a614d8a565b021790555050604051639926ee7d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169150639926ee7d906136bf908d908990600401615b4c565b600060405180830381600087803b1580156136d957600080fd5b505af11580156136ed573d6000803e3d6000fd5b50506040518b92506001600160a01b038d1691507fe8e68cef1c3a761ed7be7e8463a375f27f7bc335e51824223cacce636ec5c3fe90600090a35b604051631fd93ca960e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633fb2795290613778908d908c908c90600401615bc0565b600060405180830381600087803b15801561379257600080fd5b505af11580156137a6573d6000803e3d6000fd5b5050604051632550477760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169250632550477791506137fc908d908d908d908d90600401615be5565b6000604051808303816000875af115801561381b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526138439190810190615c7b565b60408087019190915260208601919091525162bff04d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169062bff04d906138a0908c908c908c90600401615cde565b6000604051808303816000875af11580156138bf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526138e79190810190615cf8565b84525050509695505050505050565b6020808301516001600160a01b0380821660008181526099909452604090932054919290871614156139765760405162461bcd60e51b81526020600482015260356024820152600080516020615eec83398151915260448201527439371d1031b0b73737ba1031b43ab9371039b2b63360591b6064820152608401610849565b8760ff16846000015160ff16146139f35760405162461bcd60e51b81526020600482015260476024820152600080516020615eec83398151915260448201527f726e3a2071756f72756d4e756d626572206e6f74207468652073616d65206173606482015266081cda59db995960ca1b608482015260a401610849565b604051635401ed2760e01b81526004810182905260ff891660248201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635401ed2790604401602060405180830381865afa158015613a64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a889190615d91565b9050613a948185614582565b6001600160601b0316866001600160601b031611613b275760405162461bcd60e51b81526020600482015260566024820152600080516020615eec83398151915260448201527f726e3a20696e636f6d696e67206f70657261746f722068617320696e7375666660648201527534b1b4b2b73a1039ba30b5b2903337b91031b43ab93760511b608482015260a401610849565b613b3188856145a6565b6001600160601b0316816001600160601b0316106123215760405162461bcd60e51b815260206004820152605c6024820152600080516020615eec83398151915260448201527f726e3a2063616e6e6f74206b69636b206f70657261746f722077697468206d6f60648201527f7265207468616e206b69636b424950734f66546f74616c5374616b6500000000608482015260a401610849565b60965460ff1660c08110613c3f5760405162461bcd60e51b815260206004820152603560248201527f5265676973747279436f6f7264696e61746f722e63726561746551756f72756d6044820152740e881b585e081c5d5bdc9d5b5cc81c995858da1959605a1b6064820152608401610849565b613c4a816001615dae565b6096805460ff191660ff9290921691909117905580613c698186612af8565b60405160016296b58960e01b031981526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ff694a7790613cbc90849088908890600401615dd3565b600060405180830381600087803b158015613cd657600080fd5b505af1158015613cea573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506326d941f29150602401600060405180830381600087803b158015613d5257600080fd5b505af1158015613d66573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506326d941f29150602401600060405180830381600087803b158015613dce57600080fd5b505af1158015612321573d6000803e3d6000fd5b6000546201000090046001600160a01b0316158015613e0957506001600160a01b03821615155b613e8b5760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610849565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2613ece826126f8565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015613f2b57507f000000000000000000000000000000000000000000000000000000000000000046145b15613f5557507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b60008080600080516020615f0c8339815191526003600080516020615f0c83398151915286600080516020615f0c83398151915288890909089050600061406f827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52600080516020615f0c8339815191526145c0565b91959194509092505050565b6000610100825111156141045760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610849565b815161411257506000919050565b60008083600081518110614128576141286156fa565b0160200151600160f89190911c81901b92505b84518110156141ff57848181518110614156576141566156fa565b0160200151600160f89190911c1b91508282116141eb5760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610849565b918117916141f881615726565b905061413b565b50909392505050565b600082815260986020526040902054806142ad576000838152609860209081526040808320815160608101835263ffffffff43811682528185018681526001600160c01b03808a16958401958652845460018101865594885295909620915191909201805495519351909416600160401b026001600160401b03938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055505050565b60008381526098602052604081206142c6600184615941565b815481106142d6576142d66156fa565b600091825260209091200180549091504363ffffffff9081169116141561431a5780546001600160401b0316600160401b6001600160c01b03851602178155610930565b805463ffffffff438116600160201b81810267ffffffff0000000019909416939093178455600087815260986020908152604080832081516060810183529485528483018481526001600160c01b03808c1693870193845282546001810184559286529390942094519401805493519151909216600160401b026001600160401b0391861690960267ffffffffffffffff199093169390941692909217179190911691909117905550505050565b6001600160a01b0383163b156144e257604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906144089086908690600401615a9b565b602060405180830381865afa158015614425573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144499190615e4c565b6001600160e01b0319161461171e5760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610849565b826001600160a01b03166144f6838361466f565b6001600160a01b03161461171e5760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610849565b60208101516000906127109061459c9061ffff1685615e76565b612abe9190615ea5565b60408101516000906127109061459c9061ffff1685615e76565b6000806145cb6149dc565b6145d36149fa565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa925082801561461457614616565bfe5b50826146645760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610849565b505195945050505050565b600080600061467e858561468b565b91509150611fa6816146fb565b6000808251604114156146c25760208301516040840151606085015160001a6146b6878285856148b6565b945094505050506146f4565b8251604014156146ec57602083015160408401516146e18683836149a3565b9350935050506146f4565b506000905060025b9250929050565b600081600481111561470f5761470f614d8a565b14156147185750565b600181600481111561472c5761472c614d8a565b141561477a5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610849565b600281600481111561478e5761478e614d8a565b14156147dc5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610849565b60038160048111156147f0576147f0614d8a565b14156148495760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610849565b600481600481111561485d5761485d614d8a565b1415610cc45760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610849565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156148ed575060009050600361499a565b8460ff16601b1415801561490557508460ff16601c14155b15614916575060009050600461499a565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561496a573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166149935760006001925092505061499a565b9150600090505b94509492505050565b6000806001600160ff1b038316816149c060ff86901c601b6158e3565b90506149ce878288856148b6565b935093505050935093915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60008083601f840112614a2a57600080fd5b5081356001600160401b03811115614a4157600080fd5b6020830191508360208260051b85010111156146f457600080fd5b60008060208385031215614a6f57600080fd5b82356001600160401b03811115614a8557600080fd5b614a9185828601614a18565b90969095509350505050565b600060208284031215614aaf57600080fd5b5035919050565b63ffffffff81168114610cc457600080fd5b600080600060608486031215614add57600080fd5b833592506020840135614aef81614ab6565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b0381118282101715614b3857614b38614b00565b60405290565b604080519081016001600160401b0381118282101715614b3857614b38614b00565b604051601f8201601f191681016001600160401b0381118282101715614b8857614b88614b00565b604052919050565b60006001600160401b03831115614ba957614ba9614b00565b614bbc601f8401601f1916602001614b60565b9050828152838383011115614bd057600080fd5b828260208301376000602084830101529392505050565b600060208284031215614bf957600080fd5b81356001600160401b03811115614c0f57600080fd5b8201601f81018413614c2057600080fd5b614c2f84823560208401614b90565b949350505050565b6001600160a01b0381168114610cc457600080fd5b8035614c5781614c37565b919050565b600060208284031215614c6e57600080fd5b8135612abe81614c37565b60008060408385031215614c8c57600080fd5b50508035926020909101359150565b803560ff81168114614c5757600080fd5b600060208284031215614cbe57600080fd5b612abe82614c9b565b815181526020808301519082015260408101610e8f565b60008083601f840112614cf057600080fd5b5081356001600160401b03811115614d0757600080fd5b6020830191508360208285010111156146f457600080fd5b60008060008060408587031215614d3557600080fd5b84356001600160401b0380821115614d4c57600080fd5b614d5888838901614a18565b90965094506020870135915080821115614d7157600080fd5b50614d7e87828801614cde565b95989497509550505050565b634e487b7160e01b600052602160045260246000fd5b60038110614dbe57634e487b7160e01b600052602160045260246000fd5b9052565b815181526020808301516040830191614ddd90840182614da0565b5092915050565b803561ffff81168114614c5757600080fd5b600060608284031215614e0857600080fd5b614e10614b16565b90508135614e1d81614ab6565b8152614e2b60208301614de4565b6020820152614e3c60408301614de4565b604082015292915050565b60008060808385031215614e5a57600080fd5b614e6383614c9b565b9150614e728460208501614df6565b90509250929050565b600080600060408486031215614e9057600080fd5b8335614e9b81614c37565b925060208401356001600160401b03811115614eb657600080fd5b614ec286828701614cde565b9497909650939450505050565b60006101008284031215614ee257600080fd5b50919050565b60008083601f840112614efa57600080fd5b5081356001600160401b03811115614f1157600080fd5b6020830191508360208260061b85010111156146f457600080fd5b600060608284031215614f3e57600080fd5b614f46614b16565b905081356001600160401b03811115614f5e57600080fd5b8201601f81018413614f6f57600080fd5b614f7e84823560208401614b90565b825250602082013560208201526040820135604082015292915050565b60008060008060008060008060006101a08a8c031215614fba57600080fd5b89356001600160401b0380821115614fd157600080fd5b614fdd8d838e01614cde565b909b50995060208c0135915080821115614ff657600080fd5b6150028d838e01614cde565b90995097508791506150178d60408e01614ecf565b96506101408c013591508082111561502e57600080fd5b61503a8d838e01614ee8565b90965094506101608c013591508082111561505457600080fd5b6150608d838e01614f2c565b93506101808c013591508082111561507757600080fd5b506150848c828d01614f2c565b9150509295985092959850929598565b60008060008060008061016087890312156150ae57600080fd5b86356001600160401b03808211156150c557600080fd5b6150d18a838b01614cde565b909850965060208901359150808211156150ea57600080fd5b6150f68a838b01614cde565b909650945084915061510b8a60408b01614ecf565b935061014089013591508082111561512257600080fd5b5061512f89828a01614f2c565b9150509295509295509295565b60006001600160401b0382111561515557615155614b00565b5060051b60200190565b6000806040838503121561517257600080fd5b823561517d81614ab6565b91506020838101356001600160401b0381111561519957600080fd5b8401601f810186136151aa57600080fd5b80356151bd6151b88261513c565b614b60565b81815260059190911b820183019083810190888311156151dc57600080fd5b928401925b828410156151fa578335825292840192908401906151e1565b80955050505050509250929050565b6020808252825182820181905260009190848201906040850190845b8181101561524757835163ffffffff1683529284019291840191600101615225565b50909695505050505050565b6000806020838503121561526657600080fd5b82356001600160401b0381111561527c57600080fd5b614a9185828601614cde565b6001600160601b0381168114610cc457600080fd5b600082601f8301126152ae57600080fd5b813560206152be6151b88361513c565b82815260069290921b840181019181810190868411156152dd57600080fd5b8286015b8481101561532e57604081890312156152fa5760008081fd5b615302614b3e565b813561530d81614c37565b81528185013561531c81615288565b818601528352918301916040016152e1565b509695505050505050565b600080600060a0848603121561534e57600080fd5b6153588585614df6565b9250606084013561536881615288565b915060808401356001600160401b0381111561538357600080fd5b61538f8682870161529d565b9150509250925092565b600082601f8301126153aa57600080fd5b813560206153ba6151b88361513c565b828152606092830285018201928282019190878511156153d957600080fd5b8387015b858110156153fc576153ef8982614df6565b84529284019281016153dd565b5090979650505050505050565b600082601f83011261541a57600080fd5b8135602061542a6151b88361513c565b82815260059290921b8401810191818101908684111561544957600080fd5b8286015b8481101561532e57803561546081615288565b835291830191830161544d565b600082601f83011261547e57600080fd5b8135602061548e6151b88361513c565b82815260059290921b840181019181810190868411156154ad57600080fd5b8286015b8481101561532e5780356001600160401b038111156154d05760008081fd5b6154de8986838b010161529d565b8452509183019183016154b1565b600080600080600080600080610100898b03121561550957600080fd5b61551289614c4c565b975061552060208a01614c4c565b965061552e60408a01614c4c565b955061553c60608a01614c4c565b94506080890135935060a08901356001600160401b038082111561555f57600080fd5b61556b8c838d01615399565b945060c08b013591508082111561558157600080fd5b61558d8c838d01615409565b935060e08b01359150808211156155a357600080fd5b506155b08b828c0161546d565b9150509295985092959890939650565b6000604082840312156155d257600080fd5b6155da614b3e565b90506155e582614c9b565b815260208201356155f581614c37565b602082015292915050565b6000806000806080858703121561561657600080fd5b843593506020808601356001600160401b0381111561563457600080fd5b8601601f8101881361564557600080fd5b80356156536151b88261513c565b81815260069190911b8201830190838101908a83111561567257600080fd5b928401925b8284101561569b576156898b856155c0565b82528482019150604084019350615677565b979a97995050505060408601359560600135949350505050565b60208101610e8f8284614da0565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060001982141561573a5761573a615710565b5060010190565b60005b8381101561575c578181015183820152602001615744565b838111156109305750506000910152565b60008151808452615785816020860160208601615741565b601f01601f19169290920160200192915050565b602081526000612abe602083018461576d565b6000602082840312156157be57600080fd5b8151612abe81614c37565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561582557600080fd5b81518015158114612abe57600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000808335601e1984360301811261589457600080fd5b8301803591506001600160401b038211156158ae57600080fd5b6020019150600581901b36038213156146f457600080fd5b6000602082840312156158d857600080fd5b8151612abe81614ab6565b600082198211156158f6576158f6615710565b500190565b6000808585111561590b57600080fd5b8386111561591857600080fd5b5050820193919092039150565b60006040828403121561593757600080fd5b612abe83836155c0565b60008282101561595357615953615710565b500390565b600060a0820187835260208781850152604060a08186015282885180855260c087019150838a01945060005b818110156159b5578551805160ff1684528501516001600160a01b0316858401529484019491830191600101615984565b5050606086019790975250505050608001529392505050565b600083516159e0818460208801615741565b6001600160f81b0319939093169190920190815260010192915050565b60018060a01b03841681528260208201526060604082015260006123e0606083018461576d565b600060208284031215615a3657600080fd5b81516001600160c01b0381168114612abe57600080fd5b634e487b7160e01b600052601260045260246000fd5b600082615a7257615a72615a4d565b500690565b6001600160a01b0383168152604060208201819052600090614c2f9083018461576d565b828152604060208201526000614c2f604083018461576d565b600060208284031215615ac657600080fd5b5051919050565b6001600160a01b03841681526101608101615af5602083018580358252602090810135910152565b615b0f606083016040860180358252602090810135910152565b60406080850160a084013760e0820160008152604060c0860182375060006101208301908152835190526020909201516101409091015292915050565b60018060a01b0383168152604060208201526000825160606040840152615b7660a084018261576d565b90506020840151606084015260408401516080840152809150509392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b03841681526040602082018190526000906123e09083018486615b97565b60018060a01b0385168152836020820152606060408201526000615c0d606083018486615b97565b9695505050505050565b600082601f830112615c2857600080fd5b81516020615c386151b88361513c565b82815260059290921b84018101918181019086841115615c5757600080fd5b8286015b8481101561532e578051615c6e81615288565b8352918301918301615c5b565b60008060408385031215615c8e57600080fd5b82516001600160401b0380821115615ca557600080fd5b615cb186838701615c17565b93506020850151915080821115615cc757600080fd5b50615cd485828601615c17565b9150509250929050565b8381526040602082015260006123e0604083018486615b97565b60006020808385031215615d0b57600080fd5b82516001600160401b03811115615d2157600080fd5b8301601f81018513615d3257600080fd5b8051615d406151b88261513c565b81815260059190911b82018301908381019087831115615d5f57600080fd5b928401925b82841015615d86578351615d7781614ab6565b82529284019290840190615d64565b979650505050505050565b600060208284031215615da357600080fd5b8151612abe81615288565b600060ff821660ff84168060ff03821115615dcb57615dcb615710565b019392505050565b60006060820160ff8616835260206001600160601b03808716828601526040606081870152838751808652608088019150848901955060005b81811015615e3c57865180516001600160a01b031684528601518516868401529585019591830191600101615e0c565b50909a9950505050505050505050565b600060208284031215615e5e57600080fd5b81516001600160e01b031981168114612abe57600080fd5b60006001600160601b0380831681851681830481118215151615615e9c57615e9c615710565b02949350505050565b60006001600160601b0380841680615ebf57615ebf615a4d565b9216919091049291505056fe5265676973747279436f6f7264696e61746f722e7570646174654f70657261745265676973747279436f6f7264696e61746f722e5f76616c696461746543687530644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd475265676973747279436f6f7264696e61746f722e5f646572656769737465724fa2646970667358221220286afd6e02bf84255547edeabc5359e76627fd64f60687f4d864fc376ca7f73164736f6c634300080c0033","sourceMap":"1625:39194:29:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13457:656;;;;;;:::i;:::-;;:::i;:::-;;38843:155;;;;;;:::i;:::-;38924:7;38950:34;;;:22;:34;;;;;:41;;38843:155;;;;1159:25:108;;;1147:2;1132:18;38843:155:29;;;;;;;;37100:1055;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1871:32:108;;;1853:51;;1841:2;1826:18;37100:1055:29;1707:203:108;4798:28:29;;;;;-1:-1:-1;;;;;4798:28:29;;;;;;-1:-1:-1;;;;;2079:32:108;;;2061:51;;2049:2;2034:18;4798:28:29;1915:203:108;17668:285:29;;;;;;:::i;:::-;;:::i;5826:138:18:-;;;;;;:::i;:::-;;:::i;35104:131:29:-;;;;;;:::i;:::-;-1:-1:-1;;;;;35194:23:29;35168:7;35194:23;;;:13;:23;;;;;:34;;35104:131;3832:392:18;;;;;;:::i;:::-;;:::i;4318:55:29:-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5343:14:108;;5336:22;5318:41;;5306:2;5291:18;4318:55:29;5178:187:108;38256:211:29;;;;;;:::i;:::-;;:::i;:::-;;;;5894:13:108;;5853:10;5890:22;;;5872:41;;5973:4;5961:17;;;5955:24;5951:33;;;5929:20;;;5922:63;6033:17;;;6027:24;-1:-1:-1;;;;;6023:50:108;6001:20;;;5994:80;5831:2;5816:18;38256:211:29;5623:457:108;4484:56:29;;;;;;:::i;:::-;;;;;;;;;;;;;;4914:22;;;;;-1:-1:-1;;;;;4914:22:29;;;35313:155;;;;;;:::i;:::-;;:::i;19946:119::-;;;;;;:::i;:::-;;:::i;20211:95::-;;;;;;:::i;:::-;;:::i;3205:47::-;;;;;40270:271;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;15012:2490::-;;;;;;:::i;:::-;;:::i;34904:130::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;4299:136:18:-;;;:::i;5606:149::-;;;;;;:::i;:::-;5695:1;5724:7;;5695:10;;;;;5724:14;;;5723:24;;5606:149;19549:233:29;;;;;;:::i;:::-;;:::i;5418:87:18:-;5491:7;;5418:87;;3389:47:29;;;;;4640:27;;;;;;:::i;:::-;;:::i;3528:45::-;;;;;18412:238;;;;;;:::i;:::-;;:::i;2071:101:68:-;;;:::i;38604:142:29:-;;;;;;:::i;:::-;;:::i;1825:37:18:-;;;;;;;;-1:-1:-1;;;;;1825:37:18;;;40633:184:29;;;:::i;3802:24::-;;;;;;;;;;;;11323:4:108;11311:17;;;11293:36;;11281:2;11266:18;3802:24:29;11151:184:108;10238:2488:29;;;;;;:::i;:::-;;:::i;3666:45::-;;;;;2276:109;;2331:54;2276:109;;7837:1463;;;;;;:::i;:::-;;:::i;35814:1107::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1962:234::-;;2029:167;1962:234;;12918:252;;;;;;:::i;:::-;;:::i;39053:98::-;39127:10;:17;39053:98;;18975:277;;;;;;:::i;:::-;;:::i;5726:1212::-;;;;;;:::i;:::-;;:::i;34680:149::-;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;34795:27:29;;;;;;;:13;:27;;;;;;34788:34;;;;;;;;;;;;;;-1:-1:-1;;;34788:34:29;;;;;;;;;;;-1:-1:-1;;;34788:34:29;;;;;;;;34680:149;;;;;24013:13:108;;24028:10;24009:30;23991:49;;24087:4;24075:17;;;24069:24;24112:6;24156:21;;;24134:20;;;24127:51;;;;24226:17;;;24220:24;24216:33;;;24194:20;;;24187:63;23979:2;23964:18;34680:149:29;23775:481:108;2321:198:68;;;;;;:::i;:::-;;:::i;39643:417:29:-;;;;;;:::i;:::-;;:::i;4911:437:18:-;;;;;;:::i;:::-;;:::i;35534:159:29:-;;;;;;:::i;:::-;-1:-1:-1;;;;;35656:23:29;35602:35;35656:23;;;:13;:23;;;;;:30;;;;;;35534:159;;;;;;;;:::i;13457:656::-;5695:1:18;5724:7;2973:1:29;;5695:10:18;5724:14;;;5723:24;2767:14;2759:52;;;;-1:-1:-1;;;2759:52:18;;;;;;;:::i;:::-;;;;;;;;;13578:9:29::1;13573:534;13593:20:::0;;::::1;13573:534;;;13634:16;13653:9;;13663:1;13653:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13714:23:29;::::1;13679:32;13714:23:::0;;;:13:::1;:23;::::0;;;;;;;13679:58;;;;::::1;::::0;;;;;;;::::1;::::0;::::1;::::0;13634:31;;-1:-1:-1;13679:32:29;;:58;;13714:23;13679:58;::::1;::::0;::::1;;;::::0;::::1;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;::::0;;-1:-1:-1;13772:23:29;;13679:58;;-1:-1:-1;13751:18:29::1;13902:34;13772:23:::0;13902:22:::1;:34::i;:::-;13878:58;;13950:28;13981:45;14012:13;-1:-1:-1::0;;;;;13981:45:29::1;:30;:45::i;:::-;13950:76;;14040:56;14056:8;14066:12;14080:15;14040;:56::i;:::-;13620:487;;;;;13615:3;;;;;:::i;:::-;;;;13573:534;;;;13457:656:::0;;;:::o;37100:1055::-;37255:7;37321:34;;;:22;:34;;;;;:41;;37255:7;;37321:34;37356:5;;37321:41;;;;;;:::i;:::-;;;;;;;;;;37274:88;;;;;;;;37321:41;;;;37274:88;;;;;;;;-1:-1:-1;;;37274:88:29;;;;;;;;;;;-1:-1:-1;;;37274:88:29;;;-1:-1:-1;;;;;37274:88:29;;;;;;;;;;-1:-1:-1;37658:51:29;;;;37637:200;;;;-1:-1:-1;;;37637:200:29;;27009:2:108;37637:200:29;;;26991:21:108;27048:3;27028:18;;;27021:31;27088:34;27068:18;;;27061:62;27159:34;27139:18;;;27132:62;27231:34;27210:19;;;27203:63;-1:-1:-1;;;27282:19:108;;;27275:36;27328:19;;37637:200:29;26807:546:108;37637:200:29;37868:40;;;;:45;;;;:103;;;37931:18;:40;;;37917:54;;:11;:54;;;37868:103;37847:252;;;;-1:-1:-1;;;37847:252:29;;27560:2:108;37847:252:29;;;27542:21:108;27599:3;27579:18;;;27572:31;27639:34;27619:18;;;27612:62;27710:34;27690:18;;;27683:62;27782:34;27761:19;;;27754:63;-1:-1:-1;;;27833:19:108;;;27826:37;27880:19;;37847:252:29;27358:547:108;37847:252:29;38117:31;;;;37100:1055;-1:-1:-1;;;;37100:1055:29:o;17668:285::-;17775:25;17753:10;17739:25;;;;:13;:25;;;;;:32;;;;;:61;;;;;;;;:::i;:::-;;17731:134;;;;-1:-1:-1;;;17731:134:29;;28112:2:108;17731:134:29;;;28094:21:108;28151:2;28131:18;;;28124:30;28190:34;28170:18;;;28163:62;28261:30;28241:18;;;28234:58;28309:19;;17731:134:29;27910:424:108;17731:134:29;17915:10;17901:25;;;;:13;:25;;;;;;;:36;17880:66;;;;;;17939:6;;17880:66;:::i;:::-;;;;;;;;17668:285;:::o;5826:138:18:-;2285:14;;;;;;;;;-1:-1:-1;;;;;2285:14:18;-1:-1:-1;;;;;2285:23:18;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2271:39:18;:10;-1:-1:-1;;;;;2271:39:18;;2263:94;;;;-1:-1:-1;;;2263:94:18;;;;;;;:::i;:::-;5920:37:::1;5939:17;5920:18;:37::i;:::-;5826:138:::0;:::o;3832:392::-;2125:14;;:35;;-1:-1:-1;;;2125:35:18;;2149:10;2125:35;;;2061:51:108;2125:14:18;;;;-1:-1:-1;;;;;2125:14:18;;:23;;2034:18:108;;2125:35:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2117:88;;;;-1:-1:-1;;;2117:88:18;;;;;;;:::i;:::-;4064:7:::1;::::0;4034:25;;::::1;4033:38;4025:107;;;::::0;-1:-1:-1;;;4025:107:18;;30667:2:108;4025:107:18::1;::::0;::::1;30649:21:108::0;30706:2;30686:18;;;30679:30;30745:34;30725:18;;;30718:62;30816:26;30796:18;;;30789:54;30860:19;;4025:107:18::1;30465:420:108::0;4025:107:18::1;4142:7;:25:::0;;;4182:35:::1;::::0;1159:25:108;;;4189:10:18::1;::::0;4182:35:::1;::::0;1147:2:108;1132:18;4182:35:18::1;1013:177:108::0;38256:211:29;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;38419:34:29;;;;:22;:34;;;;;:41;;38454:5;;38419:41;;;;;;:::i;:::-;;;;;;;;;;38412:48;;;;;;;;38419:41;;;;38412:48;;;;;;;-1:-1:-1;;;38412:48:29;;;;;;;;;;-1:-1:-1;;;;;;;;38412:48:29;;;;;;;;;;;;-1:-1:-1;38256:211:29;;;;;:::o;35313:155::-;35409:52;;-1:-1:-1;;;35409:52:29;;;;;1159:25:108;;;35383:7:29;;35409:14;-1:-1:-1;;;;;35409:40:29;;;;1132:18:108;;35409:52:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;19946:119::-;1334:13:68;:11;:13::i;:::-;20025:33:29::1;20043:14;20025:17;:33::i;20211:95::-:0;1334:13:68;:11;:13::i;:::-;20278:21:29::1;20290:8;20278:11;:21::i;40270:271::-:0;-1:-1:-1;;;;;;;;;;;;;;;;;40387:147:29;40415:109;2331:54;40500:8;40459:50;;;;;;;;31064:25:108;;;-1:-1:-1;;;;;31125:32:108;31120:2;31105:18;;31098:60;31052:2;31037:18;;30890:274;40459:50:29;;;;;;;;;;;;;40449:61;;;;;;40415:16;:109::i;:::-;40387:14;:147::i;15012:2490::-;5695:1:18;5724:7;2973:1:29;;5695:10:18;5724:14;;;5723:24;2767:14;2759:52;;;;-1:-1:-1;;;2759:52:18;;;;;;;:::i;:::-;15200:20:29::1;15231:65;15269:13;;15231:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;;15284:11:29::1;::::0;::::1;;::::0;-1:-1:-1;15231:37:29::1;::::0;-1:-1:-1;15231:65:29:i:1;:::-;15200:97;;15315:30;15332:12;15315:16;:30::i;:::-;15307:114;;;::::0;-1:-1:-1;;;15307:114:29;;31371:2:108;15307:114:29::1;::::0;::::1;31353:21:108::0;31410:2;31390:18;;;31383:30;-1:-1:-1;;;;;;;;;;;31429:18:108;;;31422:62;31520:34;31500:18;;;31493:62;-1:-1:-1;;;31571:19:108;;;31564:38;31619:19;;15307:114:29::1;31169:475:108::0;15307:114:29::1;15452:49:::0;;::::1;15431:163;;;::::0;-1:-1:-1;;;15431:163:29;;31851:2:108;15431:163:29::1;::::0;::::1;31833:21:108::0;31890:2;31870:18;;;31863:30;-1:-1:-1;;;;;;;;;;;31909:18:108;;;31902:62;32000:34;31980:18;;;31973:62;-1:-1:-1;;;32051:19:108;;;32044:34;32095:19;;15431:163:29::1;31649:471:108::0;15431:163:29::1;15610:9;15605:1891;15625:24:::0;;::::1;15605:1891;;;15670:18;15697:13;;15711:1;15697:16;;;;;;;:::i;:::-;::::0;;;::::1;;;;::::0;-1:-1:-1;15728:38:29::1;::::0;-1:-1:-1;15728:38:29::1;15769:18:::0;;15788:1;15769:21;;::::1;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;15859:51;::::0;-1:-1:-1;;;15859:51:29;;11323:4:108;11311:17;;15859:51:29::1;::::0;::::1;11293:36:108::0;15728:62:29;;-1:-1:-1;15728:62:29;-1:-1:-1;15859:13:29::1;-1:-1:-1::0;;;;;15859:37:29::1;::::0;::::1;::::0;11266:18:108;;15859:51:29::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15829:81;;::::0;::::1;15804:241;;;::::0;-1:-1:-1;;;15804:241:29;;33131:2:108;15804:241:29::1;::::0;::::1;33113:21:108::0;33170:3;33150:18;;;33143:31;-1:-1:-1;;;;;;;;;;;33190:18:108;;;33183:62;33281:34;33261:18;;;33254:62;33353:34;33332:19;;;33325:63;-1:-1:-1;;;33404:19:108;;;33397:36;33450:19;;15804:241:29::1;32929:546:108::0;15804:241:29::1;16059:27;16180:9:::0;16175:1082:::1;16195:30:::0;;::::1;16175:1082;;;16250:16;16269:19;;16289:1;16269:22;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16344:23:29;::::1;16309:32;16344:23:::0;;;:13:::1;:23;::::0;;;;;;;16309:58;;;;::::1;::::0;;;;;;;::::1;::::0;::::1;::::0;16250:41;;-1:-1:-1;16309:32:29;;:58;;16344:23;16309:58;::::1;::::0;::::1;;;::::0;::::1;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;::::0;;-1:-1:-1;16406:23:29;;16309:58;;-1:-1:-1;16385:18:29::1;16493:34;16406:23:::0;16493:22:::1;:34::i;:::-;16469:58:::0;-1:-1:-1;14843:1:43;-1:-1:-1;;;;;16582:46:29;::::1;14826:13:43::0;;;;14825:19;;14819:26;16549:197:29::1;;;::::0;-1:-1:-1;;;16549:197:29;;33682:2:108;16549:197:29::1;::::0;::::1;33664:21:108::0;33721:2;33701:18;;;33694:30;;;-1:-1:-1;;;;;;;;;;;33740:18:108;;;33733:62;33831:34;33811:18;;;33804:62;-1:-1:-1;;;33882:19:108;;;33875:35;33927:19;;16549:197:29::1;33480:472:108::0;16549:197:29::1;16925:19;-1:-1:-1::0;;;;;16914:30:29::1;:8;-1:-1:-1::0;;;;;16914:30:29::1;;16881:216;;;::::0;-1:-1:-1;;;16881:216:29;;34159:2:108;16881:216:29::1;::::0;::::1;34141:21:108::0;34198:3;34178:18;;;34171:31;-1:-1:-1;;;;;;;;;;;34218:18:108;;;34211:62;34309:34;34289:18;;;34282:62;34381:34;34360:19;;;34353:63;-1:-1:-1;;;34432:19:108;;;34425:38;34480:19;;16881:216:29::1;33957:548:108::0;16881:216:29::1;16447:669;17133:61;17149:8;17159:12;17173:13;;17187:1;17173:20;17189:1;17191;17189:3;;;;:::i;:::-;17173:20;;;;;;;:::i;:::-;17133:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;17133:15:29::1;::::0;-1:-1:-1;;;17133:61:29:i:1;:::-;-1:-1:-1::0;17234:8:29;;-1:-1:-1;16227:3:29::1;::::0;-1:-1:-1;16227:3:29;::::1;:::i;:::-;;;16175:1082;;;-1:-1:-1::0;17362:37:29::1;::::0;::::1;;::::0;;;:23:::1;:37;::::0;;;;;;;;17402:12:::1;17362:52:::0;;;;17433;;1159:25:108;;;17433:52:29::1;::::0;1132:18:108;17433:52:29::1;;;;;;;15656:1840;;;;15651:3;;;;:::i;:::-;;;15605:1891;;;;15190:2312;15012:2490:::0;;;;;:::o;34904:130::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;35004:23:29;;;;;;:13;:23;;;;;;;;;34997:30;;;;;;;;;;;;;;;;35004:23;;34997:30;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;-1:-1:-1;34997:30:29;34904:130;-1:-1:-1;;34904:130:29:o;4299:136:18:-;2125:14;;:35;;-1:-1:-1;;;2125:35:18;;2149:10;2125:35;;;2061:51:108;2125:14:18;;;;-1:-1:-1;;;;;2125:14:18;;:23;;2034:18:108;;2125:35:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2117:88;;;;-1:-1:-1;;;2117:88:18;;;;;;;:::i;:::-;-1:-1:-1;;4349:7:18::1;:27:::0;;;4391:37:::1;::::0;1159:25:108;;;4398:10:18::1;::::0;4391:37:::1;::::0;1147:2:108;1132:18;4391:37:18::1;;;;;;;4299:136::o:0;19549:233:29:-;1334:13:68;:11;:13::i;:::-;5178:11:29::1;::::0;19697:12;;5178:11:::1;::::0;;::::1;5163:26:::0;;::::1;;5142:129;;;::::0;-1:-1:-1;;;5142:129:29;;35181:2:108;5142:129:29::1;::::0;::::1;35163:21:108::0;35220:2;35200:18;;;35193:30;35259:34;35239:18;;;35232:62;35330:25;35310:18;;;35303:53;35373:19;;5142:129:29::1;34979:419:108::0;5142:129:29::1;19721:54:::2;19743:12;19757:17;19721:21;:54::i;:::-;1357:1:68::1;19549:233:29::0;;:::o;4640:27::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4640:27:29;;-1:-1:-1;4640:27:29;:::o;18412:238::-;4996:7;;-1:-1:-1;;;;;4996:7:29;4982:10;:21;4974:92;;;;-1:-1:-1;;;4974:92:29;;35605:2:108;4974:92:29;;;35587:21:108;35644:2;35624:18;;;35617:30;35683:34;35663:18;;;35656:62;35754:28;35734:18;;;35727:56;35800:19;;4974:92:29;35403:422:108;4974:92:29;18537:106:::1;18581:8;18619:13;;18537:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;18537:19:29::1;::::0;-1:-1:-1;;;18537:106:29:i:1;2071:101:68:-:0;1334:13;:11;:13::i;:::-;2135:30:::1;2162:1;2135:18;:30::i;:::-;2071:101::o:0;38604:142:29:-;38679:7;38705:34;38728:10;38705:22;:34::i;40633:184::-;40754:7;40784:26;1513:6:68;;-1:-1:-1;;;;;1513:6:68;;1441:85;40784:26:29;40777:33;;40633:184;:::o;10238:2488::-;5695:1:18;5724:7;;2728:1:29;;5724:14:18;;;5723:24;2767:14;2759:52;;;;-1:-1:-1;;;2759:52:18;;;;;;;:::i;:::-;10671:49:29;;::::1;10663:130;;;::::0;-1:-1:-1;;;10663:130:29;;36032:2:108;10663:130:29::1;::::0;::::1;36014:21:108::0;36071:2;36051:18;;;36044:30;;;36110:34;36090:18;;;36083:62;36181:34;36161:18;;;36154:62;-1:-1:-1;;;36232:19:108;;;36225:35;36277:19;;10663:130:29::1;35830:472:108::0;10663:130:29::1;10984:18;11005:42;11028:10;11040:6;11005:22;:42::i;:::-;10984:63;;11152:200;11219:10;11263:18;;11152:200;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;::::1;;::::0;;::::1;::::0;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;11319:22;11152:29;:200::i;:::-;11430:30;11463:219;11505:10;11541;11580:13;;11615:6;;11463:219;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;11654:17:29;;-1:-1:-1;11463:17:29::1;::::0;-1:-1:-1;;11463:219:29:i:1;:::-;11430:252;;11698:9;11693:1027;11713:24:::0;;::::1;11693:1027;;;11830:41;11874:13;:38;11894:13;;11908:1;11894:16;;;;;;;:::i;:::-;::::0;;;::::1;;;;11874:38:::0;;-1:-1:-1;11874:38:29::1;::::0;;::::1;::::0;;;;;;;;-1:-1:-1;11874:38:29;11830:82;;::::1;::::0;::::1;::::0;;;;::::1;::::0;::::1;::::0;;;::::1;-1:-1:-1::0;;;11830:82:29;::::1;::::0;::::1;::::0;;::::1;::::0;;;;-1:-1:-1;;;11830:82:29;;::::1;::::0;;::::1;::::0;;;;;;;12144:29;;:32;;11830:82;;-1:-1:-1;12144:29:29;12174:1;;12144:32;::::1;;;;;:::i;:::-;;;;;;;:69;;;12140:570;;;12233:370;12290:13;;12304:1;12290:16;;;;;;;:::i;:::-;;;;;;;;;12284:23;;12347:7;:19;;;12367:1;12347:22;;;;;;;;:::i;:::-;;;;;;;12404:10;12454:7;:22;;;12477:1;12454:25;;;;;;;;:::i;:::-;;;;;;;12513:18;;12532:1;12513:21;;;;;;;:::i;:::-;;;;;;12233:370;;;;;;;;;;:::i;:::-;12567:17;12233:14;:370::i;:::-;12622:73;12642:18;;12661:1;12642:21;;;;;;;:::i;:::-;;;;;;:30;;;;;;;;;;:::i;:::-;12674:13;;12688:1;12674:20;12690:1;12692;12690:3;;;;:::i;:::-;12674:20;;;;;;;:::i;:::-;12622:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;12622:19:29::1;::::0;-1:-1:-1;;;12622:73:29:i:1;:::-;-1:-1:-1::0;11739:3:29;::::1;::::0;::::1;:::i;:::-;;;;11693:1027;;;;10653:2073;;10238:2488:::0;;;;;;;;;;:::o;7837:1463::-;5695:1:18;5724:7;;2728:1:29;;5724:14:18;;;5723:24;2767:14;2759:52;;;;-1:-1:-1;;;2759:52:18;;;;;;;:::i;:::-;8309:18:29::1;8330:42;8353:10;8365:6;8330:22;:42::i;:::-;8309:63;;8450:37;8490:221;8532:10;8569;8608:13;;8644:6;;8490:221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;8683:17:29;;-1:-1:-1;8490:17:29::1;::::0;-1:-1:-1;;8490:221:29:i:1;:::-;:243:::0;;-1:-1:-1;8490:243:29::1;8744:550;8764:24:::0;;::::1;8744:550;;;8809:18;8836:13;;8850:1;8836:16;;;;;;;:::i;:::-;::::0;;;::::1;;;;9137:27;::::0;;;:13:::1;:27;::::0;;;;:44;9109:24;;8836:16;;-1:-1:-1;9137:44:29::1;;::::0;-1:-1:-1;9109:21:29;;9131:1;;9109:24;::::1;;;;;:::i;:::-;;;;;;;:72;;;;9084:199;;;::::0;-1:-1:-1;;;9084:199:29;;36762:2:108;9084:199:29::1;::::0;::::1;36744:21:108::0;36801:2;36781:18;;;36774:30;;;36840:34;36820:18;;;36813:62;36911:34;36891:18;;;36884:62;-1:-1:-1;;;36962:19:108;;;36955:35;37007:19;;9084:199:29::1;36560:472:108::0;9084:199:29::1;-1:-1:-1::0;8790:3:29;::::1;::::0;::::1;:::i;:::-;;;;8744:550;;;;8119:1181;;7837:1463:::0;;;;;;;:::o;35814:1107::-;35955:15;35982:23;36021:11;:18;-1:-1:-1;;;;;36008:32:29;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;36008:32:29;;35982:58;;36055:9;36050:841;36074:11;:18;36070:1;:22;36050:841;;;36113:14;36130:22;:38;36153:11;36165:1;36153:14;;;;;;;;:::i;:::-;;;;;;;36130:38;;;;;;;;;;;:45;;;;36113:62;;36194:9;36189:692;36213:6;36209:1;:10;36189:692;;;36324:11;36248:87;;:22;:38;36271:11;36283:1;36271:14;;;;;;;;:::i;:::-;;;;;;;36248:38;;;;;;;;;;;36300:1;36296;36287:6;:10;;;;:::i;:::-;:14;;;;:::i;:::-;36248:54;;;;;;;;:::i;:::-;;;;;;;;;;:72;;;:87;36244:623;;36359:28;36415:22;:38;36438:11;36450:1;36438:14;;;;;;;;:::i;:::-;;;;;;;36415:38;;;;;;;;;;;36467:1;36463;36454:6;:10;;;;:::i;:::-;:14;;;;:::i;:::-;36415:54;;;;;;;;:::i;:::-;;;;;;;;;;:76;-1:-1:-1;;;36415:76:29;;;;;-1:-1:-1;36546:26:29;;;:65;;;36600:11;36576:35;;:21;:35;;;36546:65;36513:251;;;;-1:-1:-1;;;36513:251:29;;37369:2:108;36513:251:29;;;37351:21:108;37408:3;37388:18;;;37381:31;37448:34;37428:18;;;37421:62;37519:34;37499:18;;;37492:62;37591:34;37570:19;;;37563:63;-1:-1:-1;;;37642:19:108;;;37635:38;37690:19;;36513:251:29;37167:548:108;36513:251:29;36819:1;36806:10;36815:1;36806:6;:10;:::i;:::-;:14;;;;:::i;:::-;36786:7;36794:1;36786:10;;;;;;;;:::i;:::-;;;;;;:35;;;;;;;;;;;36843:5;;;36244:623;36221:3;;;;:::i;:::-;;;;36189:692;;;;36099:792;36094:3;;;;;:::i;:::-;;;;36050:841;;;-1:-1:-1;36907:7:29;35814:1107;-1:-1:-1;;;35814:1107:29:o;12918:252::-;2855:1;5724:7:18;;5695:10;5724:14;;;5723:24;2767:14;2759:52;;;;-1:-1:-1;;;2759:52:18;;;;;;;:::i;:::-;13055:108:29::1;13099:10;13139:13;;13055:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;13055:19:29::1;::::0;-1:-1:-1;;;13055:108:29:i:1;18975:277::-:0;1334:13:68;:11;:13::i;:::-;19183:62:29::1;19197:17;19216:12;19230:14;19183:13;:62::i;5726:1212::-:0;3111:19:69;3134:13;;;;;;3133:14;;3179:34;;;;-1:-1:-1;3197:12:69;;3212:1;3197:12;;;;:16;3179:34;3178:108;;;-1:-1:-1;3258:4:69;1476:19:71;:23;;;3219:66:69;;-1:-1:-1;3268:12:69;;;;;:17;3219:66;3157:201;;;;-1:-1:-1;;;3157:201:69;;37922:2:108;3157:201:69;;;37904:21:108;37961:2;37941:18;;;37934:30;38000:34;37980:18;;;37973:62;-1:-1:-1;;;38051:18:108;;;38044:44;38105:19;;3157:201:69;37720:410:108;3157:201:69;3368:12;:16;;-1:-1:-1;;3368:16:69;3383:1;3368:16;;;3394:65;;;;3428:13;:20;;-1:-1:-1;;3428:20:69;;;;;3394:65;6161:14:29::1;:21;6132:18;:25;:50;:101;;;;;6211:15;:22;6186:14;:21;:47;6132:101;6111:201;;;::::0;-1:-1:-1;;;6111:201:29;;38337:2:108;6111:201:29::1;::::0;::::1;38319:21:108::0;38376:2;38356:18;;;38349:30;38415:34;38395:18;;;38388:62;-1:-1:-1;;;38466:18:108;;;38459:51;38527:19;;6111:201:29::1;38135:417:108::0;6111:201:29::1;6359:33;6378:13;6359:18;:33::i;:::-;6402:56;6420:15;6437:20;6402:17;:56::i;:::-;6468:33;6486:14;6468:17;:33::i;:::-;6511:21;6523:8;6511:11;:21::i;:::-;6601:10;:39:::0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;6601:39:29;;;;;;::::1;::::0;;-1:-1:-1;;;;;6625:13:29::1;6601:39:::0;::::1;-1:-1:-1::0;;;;;;6601:39:29;;::::1;;::::0;;;6650:40;;;;::::1;::::0;;;::::1;::::0;;6674:14:::1;6650:40:::0;::::1;::::0;;::::1;;::::0;;6700:39;;;;::::1;::::0;;;;;;::::1;::::0;;6724:13:::1;6700:39:::0;;::::1;::::0;;;::::1;;::::0;;;6776:156:::1;6800:18;:25;6796:1;:29;6776:156;;;6846:75;6860:18;6879:1;6860:21;;;;;;;;:::i;:::-;;;;;;;6883:14;6898:1;6883:17;;;;;;;;:::i;:::-;;;;;;;6902:15;6918:1;6902:18;;;;;;;;:::i;:::-;;;;;;;6846:13;:75::i;:::-;6827:3:::0;::::1;::::0;::::1;:::i;:::-;;;;6776:156;;;;3483:14:69::0;3479:99;;;3529:5;3513:21;;-1:-1:-1;;3513:21:69;;;3553:14;;-1:-1:-1;11293:36:108;;3553:14:69;;11281:2:108;11266:18;3553:14:69;;;;;;;3479:99;3101:483;5726:1212:29;;;;;;;;:::o;2321:198:68:-;1334:13;:11;:13::i;:::-;-1:-1:-1;;;;;2409:22:68;::::1;2401:73;;;::::0;-1:-1:-1;;;2401:73:68;;38958:2:108;2401:73:68::1;::::0;::::1;38940:21:108::0;38997:2;38977:18;;;38970:30;39036:34;39016:18;;;39009:62;-1:-1:-1;;;39087:18:108;;;39080:36;39133:19;;2401:73:68::1;38756:402:108::0;2401:73:68::1;2484:28;2503:8;2484:18;:28::i;39643:417:29:-:0;39860:7;39923:130;2029:167;39995:21;40018:18;40038:4;40044:6;39950:101;;;;;;;;;;;;:::i;39923:130::-;39916:137;39643:417;-1:-1:-1;;;;;39643:417:29:o;4911:437:18:-;2285:14;;;;;;;;;-1:-1:-1;;;;;2285:14:18;-1:-1:-1;;;;;2285:23:18;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2271:39:18;:10;-1:-1:-1;;;;;2271:39:18;;2263:94;;;;-1:-1:-1;;;2263:94:18;;;;;;;:::i;:::-;5164:7:::1;;5163:8;5141:15;5140:16;5128:7;;5127:8;5126:31;5125:47;5104:150;;;::::0;-1:-1:-1;;;5104:150:18;;40505:2:108;5104:150:18::1;::::0;::::1;40487:21:108::0;40544:2;40524:18;;;40517:30;40583:34;40563:18;;;40556:62;40654:26;40634:18;;;40627:54;40698:19;;5104:150:18::1;40303:420:108::0;5104:150:18::1;5264:7;:25:::0;;;5304:37:::1;::::0;1159:25:108;;;5313:10:18::1;::::0;5304:37:::1;::::0;1147:2:108;1132:18;5304:37:18::1;1013:177:108::0;33470:336:29;33545:7;33588:34;;;:22;:34;;;;;:41;33643:18;33639:161;;-1:-1:-1;33684:1:29;;33470:336;-1:-1:-1;;33470:336:29:o;33639:161::-;33723:34;;;;:22;:34;;;;;33758:17;33774:1;33758:13;:17;:::i;:::-;33723:53;;;;;;;;:::i;:::-;;;;;;;;;;:66;-1:-1:-1;;;33723:66:29;;-1:-1:-1;;;;;33723:66:29;;;-1:-1:-1;;;33470:336:29:o;13616:751:43:-;13683:23;13797:15;;13894:440;13918:3;13914:1;:7;13894:440;;;14020:1;:6;;;-1:-1:-1;14107:16:43;;;:21;14103:221;;14280:10;14305:1;14292:16;;14267:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;14254:55;;14103:221;13923:3;;;:::i;:::-;;;13894:440;;;;14343:17;13616:751;;;:::o;27820:631:29:-;28003:25;27980:12;:19;;;:48;;;;;;;;:::i;:::-;;27976:85;;27820:631;;;:::o;27976:85::-;28091:23;;28150:72;;-1:-1:-1;;;28150:72:29;;28070:18;;-1:-1:-1;;;;;28150:13:29;:33;;;;:72;;28184:8;;28091:23;;28206:15;;28150:72;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28124:98;-1:-1:-1;;;;;;28238:23:29;;15417:11:43;28233:212:29;;28279:151;28327:8;28368:47;28399:15;-1:-1:-1;;;;;28368:47:29;:30;:47::i;:::-;28279:19;:151::i;:::-;27966:485;;27820:631;;;:::o;6024:360:18:-;-1:-1:-1;;;;;6127:40:18;;6106:160;;;;-1:-1:-1;;;6106:160:18;;42006:2:108;6106:160:18;;;41988:21:108;42045:2;42025:18;;;42018:30;42084:34;42064:18;;;42057:62;42155:34;42135:18;;;42128:62;-1:-1:-1;;;42206:19:108;;;42199:40;42256:19;;6106:160:18;41804:477:108;6106:160:18;6299:14;;6281:52;;;-1:-1:-1;;;;;6299:14:18;;;;;;42546:34:108;;42616:15;;;42611:2;42596:18;;42589:43;6281:52:18;;42481:18:108;6281:52:18;;;;;;;6343:14;:34;;-1:-1:-1;;;;;6343:34:18;;;;;-1:-1:-1;;;;;;6343:34:18;;;;;;;;;6024:360::o;1599:130:68:-;929:10:72;1662:7:68;:5;:7::i;:::-;-1:-1:-1;;;;;1662:23:68;;1654:68;;;;-1:-1:-1;;;1654:68:68;;42845:2:108;1654:68:68;;;42827:21:108;;;42864:18;;;42857:30;42923:34;42903:18;;;42896:62;42975:18;;1654:68:68;42643:356:108;34061:179:29;34159:13;;34138:53;;;-1:-1:-1;;;;;34159:13:29;;;42546:34:108;;42616:15;;;42611:2;42596:18;;42589:43;34138:53:29;;42481:18:108;34138:53:29;;;;;;;34201:13;:32;;-1:-1:-1;;;;;;34201:32:29;-1:-1:-1;;;;;34201:32:29;;;;;;;;;;34061:179::o;34246:137::-;34326:7;;34311:35;;;-1:-1:-1;;;;;34326:7:29;;;42546:34:108;;42616:15;;;42611:2;42596:18;;42589:43;34311:35:29;;42481:18:108;34311:35:29;;;;;;;34356:7;:20;;-1:-1:-1;;;;;;34356:20:29;-1:-1:-1;;;;;34356:20:29;;;;;;;;;;34246:137::o;4339:165:90:-;4416:7;4442:55;4464:20;:18;:20::i;:::-;4486:10;9320:57:89;;-1:-1:-1;;;9320:57:89;;;59207:27:108;59250:11;;;59243:27;;;59286:12;;;59279:28;;;9284:7:89;;59323:12:108;;9320:57:89;;;;;;;;;;;;9310:68;;;;;;9303:75;;9191:194;;;;;11042:451:42;-1:-1:-1;;;;;;;;;;;;;;;;;11121:12:42;;;11183:24;-1:-1:-1;;;;;;;;;;;11191:2:42;11183:24;:::i;:::-;11171:36;;11218:239;11257:13;11268:1;11257:10;:13::i;:::-;11245:25;;-1:-1:-1;11245:25:42;-1:-1:-1;;;;;;;;;;;;11334:1:42;11331;11324:24;11316:4;:32;11312:92;;;11376:13;;;;;;;;;;;;;;;;;;;;11042:451;-1:-1:-1;;;11042:451:42:o;11312:92::-;-1:-1:-1;;;;;;;;;;;11432:1:42;11429;11422:24;11418:28;;11218:239;;5267:467:43;5378:7;5397:14;5414:44;5440:17;5414:25;:44::i;:::-;5397:61;-1:-1:-1;5473:11:43;;5469:235;;5582:13;5525:70;;5531:17;5576:1;5549:17;:24;:28;;;;:::i;:::-;5531:47;;;;;;;;:::i;:::-;;;;;;;5525:70;5500:193;;;;-1:-1:-1;;;5500:193:43;;43764:2:108;5500:193:43;;;43746:21:108;43803:2;43783:18;;;43776:30;43842:34;43822:18;;;43815:62;43913:33;43893:18;;;43886:61;43964:19;;5500:193:43;43562:427:108;5500:193:43;5721:6;5267:467;-1:-1:-1;;;5267:467:43:o;33110:224:29:-;33245:11;;33181:4;;;;33239:22;;33260:1;;33245:11;;33240:16;;;33239:22;:::i;:::-;33197:65;-1:-1:-1;33279:48:29;-1:-1:-1;;;;;33279:23:29;;;;:48;;15837:5:43;;:10;;15749:105;33812:239:29;33925:27;;;;;;;:13;:27;;;;;;;;;:47;;;;;;;;;;;;;;;;;;-1:-1:-1;;33925:47:29;;;;;-1:-1:-1;;;33925:47:29;;;;;;-1:-1:-1;;33925:47:29;-1:-1:-1;;;33925:47:29;;;;;;;;;;;;;;33987:57;;23991:49:108;;;24069:24;24156:21;;24134:20;;;24127:51;;;;24220:24;24216:33;24194:20;;;24187:63;;;;33987:57:29;;23979:2:108;23964:18;33987:57:29;;;;;;;33812:239;;:::o;25338:2297::-;-1:-1:-1;;;;;25567:23:29;;25531:33;25567:23;;;:13;:23;;;;;25621;;25685:25;25662:19;;;;;;:48;;;;;;;;:::i;:::-;;25654:128;;;;-1:-1:-1;;;25654:128:29;;44196:2:108;25654:128:29;;;44178:21:108;44235:2;44215:18;;;44208:30;-1:-1:-1;;;;;;;;;;;44254:18:108;;;44247:62;44345:34;44325:18;;;44318:62;-1:-1:-1;;;44396:19:108;;;44389:34;44440:19;;25654:128:29;43994:471:108;25654:128:29;26245:11;;26158:23;;26192:65;;26230:13;;26245:11;;26192:37;:65::i;:::-;26158:100;;26268:21;26292:34;26315:10;26292:22;:34::i;:::-;26268:58;-1:-1:-1;;;;;;26345:23:29;;26336:98;;;;-1:-1:-1;;;26336:98:29;;44672:2:108;26336:98:29;;;44654:21:108;44711:2;44691:18;;;44684:30;-1:-1:-1;;;;;;;;;;;44730:18:108;;;44723:62;44821:29;44801:18;;;44794:57;44868:19;;26336:98:29;44470:423:108;26336:98:29;26452:33;26469:15;26452:16;:33::i;:::-;26444:112;;;;-1:-1:-1;;;26444:112:29;;45100:2:108;26444:112:29;;;45082:21:108;45139:2;45119:18;;;45112:30;-1:-1:-1;;;;;;;;;;;45158:18:108;;;45151:62;45249:34;45229:18;;;45222:62;-1:-1:-1;;;45300:19:108;;;45293:33;45343:19;;26444:112:29;44898:470:108;26444:112:29;26574:41;-1:-1:-1;;;;;26574:26:29;;;;:41;;15837:5:43;;:10;;15749:105;26574:41:29;26566:143;;;;-1:-1:-1;;;26566:143:29;;45575:2:108;26566:143:29;;;45557:21:108;45614:2;45594:18;;;45587:30;-1:-1:-1;;;;;;;;;;;45633:18:108;;;45626:62;45724:34;45704:18;;;45697:62;45796:27;45775:19;;;45768:56;45841:19;;26566:143:29;45373:493:108;26566:143:29;-1:-1:-1;;;;;26747:36:29;;;16210:2:43;16206:6;;;26867:103:29;26915:10;16206:6:43;26867:21:29;:103::i;:::-;-1:-1:-1;;;;;27134:17:29;;27130:224;;27169:19;;;:49;;-1:-1:-1;;27169:49:29;27191:27;27169:49;;;27232:50;;-1:-1:-1;;;27232:50:29;;-1:-1:-1;;;;;2079:32:108;;;27232:50:29;;;2061:51:108;27232:14:29;:40;;;;2034:18:108;;27232:50:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;27301:42:29;;27332:10;;-1:-1:-1;;;;;;27301:42:29;;;-1:-1:-1;27301:42:29;;;;;27130:224;27432:58;;-1:-1:-1;;;27432:58:29;;-1:-1:-1;;;;;27432:14:29;:33;;;;:58;;27466:8;;27476:13;;27432:58;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;27500:59:29;;-1:-1:-1;;;27500:59:29;;-1:-1:-1;;;;;27500:13:29;:32;;-1:-1:-1;27500:32:29;;-1:-1:-1;27500:59:29;;27533:10;;27545:13;;27500:59;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;27569:59:29;;-1:-1:-1;;;27569:59:29;;-1:-1:-1;;;;;27569:13:29;:32;;-1:-1:-1;27569:32:29;;-1:-1:-1;27569:59:29;;27602:10;;27614:13;;27569:59;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25453:2182;;;;;25338:2297;;:::o;2673:187:68:-;2765:6;;;-1:-1:-1;;;;;2781:17:68;;;-1:-1:-1;;;;;;2781:17:68;;;;;;;2813:40;;2765:6;;;2781:17;2765:6;;2813:40;;2746:16;;2813:40;2736:124;2673:187;:::o;23415:425:29:-;23606:38;;-1:-1:-1;;;23606:38:29;;-1:-1:-1;;;;;2079:32:108;;;23606:38:29;;;2061:51:108;23563:18:29;;23606:14;:28;;;;;;2034:18:108;;23606:38:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23593:51;-1:-1:-1;23658:15:29;23654:153;;23702:14;-1:-1:-1;;;;;23702:35:29;;23738:8;23748:6;23756:39;23786:8;23756:29;:39::i;:::-;23702:94;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;29400:1044::-;29714:27;;;;;29690:52;;;;:23;:52;;;;;;;;;29689:53;29681:148;;;;-1:-1:-1;;;29681:148:29;;47892:2:108;29681:148:29;;;47874:21:108;47931:2;47911:18;;;47904:30;47970:34;47950:18;;;47943:62;48041:34;48021:18;;;48014:62;-1:-1:-1;;;48092:19:108;;;48085:49;48151:19;;29681:148:29;47690:486:108;29681:148:29;29880:15;29847:22;:29;;;:48;;29839:143;;;;-1:-1:-1;;;29839:143:29;;48383:2:108;29839:143:29;;;48365:21:108;48422:2;48402:18;;;48395:30;48461:34;48441:18;;;48434:62;48532:34;48512:18;;;48505:62;-1:-1:-1;;;48583:19:108;;;48576:49;48642:19;;29839:143:29;48181:486:108;29839:143:29;30053:27;;;;;;30029:52;;;;:23;:52;;;;;;;;:59;;-1:-1:-1;;30029:59:29;30084:4;30029:59;;;30209:13;;30321:27;;30350:29;;;;30151:286;;-1:-1:-1;;;;;30209:13:29;;;;30237:143;;30278:21;;30301:18;;30237:40;:143::i;:::-;30395:32;;30151:44;:286::i;20865:2544::-;21108:30;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;21108:30:29;21493:20;21524:65;21562:13;;21524:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;21577:11:29;;;;;-1:-1:-1;21524:37:29;;-1:-1:-1;21524:65:29:i;:::-;21493:97;;21600:21;21624:34;21647:10;21624:22;:34::i;:::-;21600:58;-1:-1:-1;;;;;;21677:20:29;;21668:93;;;;-1:-1:-1;;;21668:93:29;;48874:2:108;21668:93:29;;;48856:21:108;48913:2;48893:18;;;48886:30;48952:34;48932:18;;;48925:62;49023:27;49003:18;;;48996:55;49068:19;;21668:93:29;48672:421:108;21668:93:29;21779:30;21796:12;21779:16;:30::i;:::-;21771:107;;;;;-1:-1:-1;;;21771:107:29;;49300:2:108;21771:107:29;;;49282:21:108;49319:18;;;49312:30;;;;49378:34;49358:18;;;49351:62;49449:34;49429:18;;;49422:62;49501:19;;21771:107:29;49098:428:108;21771:107:29;15616:5:43;;;-1:-1:-1;;;;;15616:5:43;:10;21888:159:29;;;;-1:-1:-1;;;21888:159:29;;49733:2:108;21888:159:29;;;49715:21:108;49772:3;49752:18;;;49745:31;49812:34;49792:18;;;49785:62;49883:34;49863:18;;;49856:62;49955:34;49934:19;;;49927:63;-1:-1:-1;;;50006:19:108;;;49999:39;50055:19;;21888:159:29;49531:549:108;21888:159:29;-1:-1:-1;;;;;22085:18:29;;;:32;;;16010:5:43;22327:103:29;22375:10;16010:5:43;22327:21:29;:103::i;:::-;22467:10;22446:40;22479:6;22446:40;;;;;;:::i;:::-;;;;;;;;22535:25;-1:-1:-1;;;;;22501:23:29;;;;;;:13;:23;;;;;:30;;;;;:59;;;;;;;;:::i;:::-;;22497:462;;22602:119;;;;;;;;;;;22681:25;22602:119;;;;;;;-1:-1:-1;;;;;22576:23:29;;-1:-1:-1;22576:23:29;;;:13;:23;;;;;;:145;;;;;;;;;;;22602:119;;22576:23;:145;;;;-1:-1:-1;;22576:145:29;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;22823:65:29;;-1:-1:-1;;;22823:65:29;;-1:-1:-1;;;;;22823:14:29;:36;;-1:-1:-1;22823:36:29;;:65;;22860:8;;22870:17;;22823:65;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;22908:40:29;;22937:10;;-1:-1:-1;;;;;;22908:40:29;;;-1:-1:-1;22908:40:29;;;;;22497:462;23084:56;;-1:-1:-1;;;23084:56:29;;-1:-1:-1;;;;;23084:14:29;:31;;;;:56;;23116:8;;23126:13;;;;23084:56;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;23211:67:29;;-1:-1:-1;;;23211:67:29;;-1:-1:-1;;;;;23211:13:29;:30;;-1:-1:-1;23211:30:29;;-1:-1:-1;23211:67:29;;23242:8;;23252:10;;23264:13;;;;23211:67;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;23211:67:29;;;;;;;;;;;;:::i;:::-;23175:19;;;;23150:128;;;;23151:22;;;23150:128;;;;23320:57;-1:-1:-1;;;23320:57:29;;-1:-1:-1;;;;;23320:13:29;:30;;;;:57;;23351:10;;23363:13;;;;23320:57;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;23320:57:29;;;;;;;;;;;;:::i;:::-;23288:89;;-1:-1:-1;;;20865:2544:29;;;;;;;;:::o;23846:1246::-;24139:19;;;;;-1:-1:-1;;;;;24187:29:29;;;24114:22;24187:29;;;:13;:29;;;;;;;:40;24139:19;;24245:29;;;;;24237:95;;;;-1:-1:-1;;;24237:95:29;;54582:2:108;24237:95:29;;;54564:21:108;54621:2;54601:18;;;54594:30;-1:-1:-1;;;;;;;;;;;54640:18:108;;;54633:62;-1:-1:-1;;;54711:18:108;;;54704:51;54772:19;;24237:95:29;54380:417:108;24237:95:29;24377:12;24350:39;;:10;:23;;;:39;;;24342:123;;;;-1:-1:-1;;;24342:123:29;;55004:2:108;24342:123:29;;;54986:21:108;55043:2;55023:18;;;55016:30;-1:-1:-1;;;;;;;;;;;55062:18:108;;;55055:62;55153:34;55133:18;;;55126:62;-1:-1:-1;;;55204:19:108;;;55197:38;55252:19;;24342:123:29;54802:475:108;24342:123:29;24595:53;;-1:-1:-1;;;24595:53:29;;;;;55452:25:108;;;55525:4;55513:17;;55493:18;;;55486:45;24566:26:29;;24595:13;-1:-1:-1;;;;;24595:29:29;;;;55425:18:108;;24595:53:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24566:82;;24698:56;24723:19;24744:9;24698:24;:56::i;:::-;-1:-1:-1;;;;;24679:75:29;:16;-1:-1:-1;;;;;24679:75:29;;24658:208;;;;-1:-1:-1;;;24658:208:29;;55998:2:108;24658:208:29;;;55980:21:108;56037:2;56017:18;;;56010:30;-1:-1:-1;;;;;;;;;;;56056:18:108;;;56049:62;56147:34;56127:18;;;56120:62;-1:-1:-1;;;56198:19:108;;;56191:53;56261:19;;24658:208:29;55796:490:108;24658:208:29;24919:48;24939:16;24957:9;24919:19;:48::i;:::-;-1:-1:-1;;;;;24897:70:29;:19;-1:-1:-1;;;;;24897:70:29;;24876:209;;;;-1:-1:-1;;;24876:209:29;;56493:2:108;24876:209:29;;;56475:21:108;56532:2;56512:18;;;56505:30;-1:-1:-1;;;;;;;;;;;56551:18:108;;;56544:62;56642:34;56622:18;;;56615:62;56714:30;56693:19;;;56686:59;56762:19;;24876:209:29;56291:496:108;30540:894:29;30834:11;;;;3092:3;30863:34;;30855:100;;;;-1:-1:-1;;;30855:100:29;;56994:2:108;30855:100:29;;;56976:21:108;57033:2;57013:18;;;57006:30;57072:34;57052:18;;;57045:62;-1:-1:-1;;;57123:18:108;;;57116:51;57184:19;;30855:100:29;56792:417:108;30855:100:29;30979:19;:15;30997:1;30979:19;:::i;:::-;30965:11;:33;;-1:-1:-1;;30965:33:29;;;;;;;;;;;;31095:15;31180:54;31095:15;31216:17;31180:21;:54::i;:::-;31244:74;;-1:-1:-1;;;;;;31244:74:29;;-1:-1:-1;;;;;31244:13:29;:30;;;;:74;;31275:12;;31289;;31303:14;;31244:74;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;31328:44:29;;-1:-1:-1;;;31328:44:29;;11323:4:108;11311:17;;31328:44:29;;;11293:36:108;31328:13:29;-1:-1:-1;;;;;31328:30:29;;-1:-1:-1;31328:30:29;;-1:-1:-1;11266:18:108;;31328:44:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;31382:45:29;;-1:-1:-1;;;31382:45:29;;11323:4:108;11311:17;;31382:45:29;;;11293:36:108;31382:14:29;-1:-1:-1;;;;;31382:31:29;;-1:-1:-1;31382:31:29;;-1:-1:-1;11266:18:108;;31382:45:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2943:441:18;3104:1;3077:14;;;;-1:-1:-1;;;;;3077:14:18;3069:37;:79;;;;-1:-1:-1;;;;;;3110:38:18;;;;3069:79;3048:197;;;;-1:-1:-1;;;3048:197:18;;58671:2:108;3048:197:18;;;58653:21:108;58710:2;58690:18;;;58683:30;58749:34;58729:18;;;58722:62;58820:34;58800:18;;;58793:62;-1:-1:-1;;;58871:19:108;;;58864:38;58919:19;;3048:197:18;58469:475:108;3048:197:18;3255:7;:26;;;3296:36;;1159:25:108;;;3303:10:18;;3296:36;;1147:2:108;1132:18;3296:36:18;;;;;;;3342:35;3361:15;3342:18;:35::i;:::-;2943:441;;:::o;3143:308:90:-;3196:7;3227:4;-1:-1:-1;;;;;3236:12:90;3219:29;;:66;;;;;3269:16;3252:13;:33;3219:66;3215:230;;;-1:-1:-1;3308:24:90;;3143:308::o;3215:230::-;-1:-1:-1;3633:73:90;;;3392:10;3633:73;;;;62324:25:108;;;;3404:12:90;62365:18:108;;;62358:34;3418:15:90;62408:18:108;;;62401:34;3677:13:90;62451:18:108;;;62444:34;3700:4:90;62494:19:108;;;;62487:61;;;;3633:73:90;;;;;;;;;;62296:19:108;;;;3633:73:90;;;3623:84;;;;;;40633:184:29:o;11614:433:42:-;11668:7;;;-1:-1:-1;;;;;;;;;;;11799:1:42;-1:-1:-1;;;;;;;;;;;11783:1:42;-1:-1:-1;;;;;;;;;;;11767:1:42;11764;11757:24;11750:47;11743:70;11728:85;;11910:9;11922:91;11929:4;11935:65;-1:-1:-1;;;;;;;;;;;11922:6:42;:91::i;:::-;12032:4;;11910:103;;-1:-1:-1;11614:433:42;;-1:-1:-1;;;11614:433:42:o;3147:1693:43:-;3237:7;576:3;3368:17;:24;:49;;3360:142;;;;-1:-1:-1;;;3360:142:43;;59548:2:108;3360:142:43;;;59530:21:108;59587:2;59567:18;;;59560:30;;;59626:34;59606:18;;;59599:62;59697:34;59677:18;;;59670:62;-1:-1:-1;;;59748:19:108;;;59741:35;59793:19;;3360:142:43;59346:472:108;3360:142:43;3578:24;;3574:77;;-1:-1:-1;3638:1:43;;3147:1693;-1:-1:-1;3147:1693:43:o;3574:77::-;3729:14;3832:15;4139:17;4157:1;4139:20;;;;;;;;:::i;:::-;;;;;4128:1;4139:20;;;;;4128:32;;;;-1:-1:-1;4243:568:43;4267:17;:24;4263:1;:28;4243:568;;;4439:17;4457:1;4439:20;;;;;;;;:::i;:::-;;;;;4428:1;4439:20;;;;;4428:32;;-1:-1:-1;4624:16:43;;;4616:100;;;;-1:-1:-1;;;4616:100:43;;60025:2:108;4616:100:43;;;60007:21:108;60064:2;60044:18;;;60037:30;60103:34;60083:18;;;60076:62;60174:34;60154:18;;;60147:62;-1:-1:-1;;;60225:19:108;;;60218:38;60273:19;;4616:100:43;59823:475:108;4616:100:43;4783:16;;;;4293:3;;;:::i;:::-;;;4243:568;;;-1:-1:-1;4827:6:43;;3147:1693;-1:-1:-1;;;3147:1693:43:o;31613:1378:29:-;31703:21;31727:34;;;:22;:34;;;;;:41;31783:18;31779:1206;;31879:34;;;;:22;:34;;;;;;;;31919:174;;;;;;;;31982:12;31919:174;;;;;;;;;;-1:-1:-1;;;;;31919:174:29;;;;;;;;;31879:215;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;31879:215:29;-1:-1:-1;;;;;31879:215:29;;;-1:-1:-1;;;31879:215:29;-1:-1:-1;;31879:215:29;;;;;;;;;;;;;;;;;;;1357:1:68::1;19549:233:29::0;;:::o;31779:1206::-;32195:37;32235:34;;;:22;:34;;;;;32270:17;32286:1;32270:13;:17;:::i;:::-;32235:53;;;;;;;;:::i;:::-;;;;;;;;;;32510:28;;32235:53;;-1:-1:-1;32549:12:29;32510:52;;;;:28;;:52;32506:469;;;32582:35;;-1:-1:-1;;;;;32582:35:29;-1:-1:-1;;;;;;;;32582:35:29;;;;;;32506:469;;;32656:55;;;32698:12;32656:55;;-1:-1:-1;;;32656:55:29;;;-1:-1:-1;;32656:55:29;;;;;;;;;:32;32729:34;;;:22;:34;;;;;;;;32769:190;;;;;;;;;;;;;;;;-1:-1:-1;;;;;32769:190:29;;;;;;;;;32729:231;;-1:-1:-1;32729:231:29;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;32729:231:29;-1:-1:-1;;;;;32729:231:29;;;;;;-1:-1:-1;;32729:231:29;;;;;;;;;;;;;;;;;;;;;;32111:874;31692:1299;31613:1378;;:::o;974:926:14:-;-1:-1:-1;;;;;1476:19:71;;;:23;1410:484:14;;1481:56;;-1:-1:-1;;;1481:56:14;;;1541:18;-1:-1:-1;;;;;1481:33:14;;;574:10;;1481:56;;1515:10;;1527:9;;1481:56;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;1481:78:14;;1456:220;;;;-1:-1:-1;;;1456:220:14;;60800:2:108;1456:220:14;;;60782:21:108;60839:2;60819:18;;;60812:30;60878:34;60858:18;;;60851:62;60949:34;60929:18;;;60922:62;-1:-1:-1;;;61000:19:108;;;60993:50;61060:19;;1456:220:14;60598:487:108;1410:484:14;1772:6;-1:-1:-1;;;;;1732:46:14;:36;1746:10;1758:9;1732:13;:36::i;:::-;-1:-1:-1;;;;;1732:46:14;;1707:176;;;;-1:-1:-1;;;1707:176:14;;61292:2:108;1707:176:14;;;61274:21:108;61331:2;61311:18;;;61304:30;61370:34;61350:18;;;61343:62;61441:34;61421:18;;;61414:62;-1:-1:-1;;;61492:19:108;;;61485:38;61540:19;;1707:176:14;61090:475:108;28655:214:29;28810:33;;;;28769:6;;2601:5;;28794:49;;:68;:49;:13;:49;:::i;:::-;:68;;;;:::i;29077:200::-;29221:30;;;;29183:6;;2601:5;;29208:43;;:62;:43;:10;:43;:::i;12053:874:42:-;12144:14;12170:12;12192:24;;:::i;:::-;12226:20;;:::i;:::-;12267:4;12256:15;;;12339:8;;;:15;;;12423:8;;;:15;;;12507:8;;;:16;;;12533:8;;;:20;;;12563:8;;;:19;;;12671:6;12665:4;12256:15;12569:1;12648:4;12641:5;12637:16;12626:58;12615:69;-1:-1:-1;12615:69:42;12781:48;;;;12754:75;;12781:48;12806:9;12754:75;;12856:7;12848:46;;;;-1:-1:-1;;;12848:46:42;;62761:2:108;12848:46:42;;;62743:21:108;62800:2;62780:18;;;62773:30;62839:28;62819:18;;;62812:56;62885:18;;12848:46:42;62559:350:108;12848:46:42;-1:-1:-1;12911:9:42;;;-1:-1:-1;;;;;12053:874:42:o;4402:227:89:-;4480:7;4500:17;4519:18;4541:27;4552:4;4558:9;4541:10;:27::i;:::-;4499:69;;;;4578:18;4590:5;4578:11;:18::i;2243:1373::-;2324:7;2333:12;2554:9;:16;2574:2;2554:22;2550:1060;;;2890:4;2875:20;;2869:27;2939:4;2924:20;;2918:27;2996:4;2981:20;;2975:27;2592:9;2967:36;3037:25;3048:4;2967:36;2869:27;2918;3037:10;:25::i;:::-;3030:32;;;;;;;;;2550:1060;3083:9;:16;3103:2;3083:22;3079:531;;;3399:4;3384:20;;3378:27;3449:4;3434:20;;3428:27;3489:23;3500:4;3378:27;3428;3489:10;:23::i;:::-;3482:30;;;;;;;;3079:531;-1:-1:-1;3559:1:89;;-1:-1:-1;3563:35:89;3079:531;2243:1373;;;;;:::o;548:631::-;625:20;616:5;:29;;;;;;;;:::i;:::-;;612:561;;;548:631;:::o;612:561::-;721:29;712:5;:38;;;;;;;;:::i;:::-;;708:465;;;766:34;;-1:-1:-1;;;766:34:89;;63116:2:108;766:34:89;;;63098:21:108;63155:2;63135:18;;;63128:30;63194:26;63174:18;;;63167:54;63238:18;;766:34:89;62914:348:108;708:465:89;830:35;821:5;:44;;;;;;;;:::i;:::-;;817:356;;;881:41;;-1:-1:-1;;;881:41:89;;63469:2:108;881:41:89;;;63451:21:108;63508:2;63488:18;;;63481:30;63547:33;63527:18;;;63520:61;63598:18;;881:41:89;63267:355:108;817:356:89;952:30;943:5;:39;;;;;;;;:::i;:::-;;939:234;;;998:44;;-1:-1:-1;;;998:44:89;;63829:2:108;998:44:89;;;63811:21:108;63868:2;63848:18;;;63841:30;63907:34;63887:18;;;63880:62;-1:-1:-1;;;63958:18:108;;;63951:32;64000:19;;998:44:89;63627:398:108;939:234:89;1072:30;1063:5;:39;;;;;;;;:::i;:::-;;1059:114;;;1118:44;;-1:-1:-1;;;1118:44:89;;64232:2:108;1118:44:89;;;64214:21:108;64271:2;64251:18;;;64244:30;64310:34;64290:18;;;64283:62;-1:-1:-1;;;64361:18:108;;;64354:32;64403:19;;1118:44:89;64030:398:108;5810:1603:89;5936:7;;6860:66;6847:79;;6843:161;;;-1:-1:-1;6958:1:89;;-1:-1:-1;6962:30:89;6942:51;;6843:161;7017:1;:7;;7022:2;7017:7;;:18;;;;;7028:1;:7;;7033:2;7028:7;;7017:18;7013:100;;;-1:-1:-1;7067:1:89;;-1:-1:-1;7071:30:89;7051:51;;7013:100;7224:24;;;7207:14;7224:24;;;;;;;;;64660:25:108;;;64733:4;64721:17;;64701:18;;;64694:45;;;;64755:18;;;64748:34;;;64798:18;;;64791:34;;;7224:24:89;;64632:19:108;;7224:24:89;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7224:24:89;;-1:-1:-1;;7224:24:89;;;-1:-1:-1;;;;;;;7262:20:89;;7258:101;;7314:1;7318:29;7298:50;;;;;;;7258:101;7377:6;-1:-1:-1;7385:20:89;;-1:-1:-1;5810:1603:89;;;;;;;;:::o;4883:336::-;4993:7;;-1:-1:-1;;;;;5038:80:89;;4993:7;5144:25;5160:3;5145:18;;;5167:2;5144:25;:::i;:::-;5128:42;;5187:25;5198:4;5204:1;5207;5210;5187:10;:25::i;:::-;5180:32;;;;;;4883:336;;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:367:108:-;77:8;87:6;141:3;134:4;126:6;122:17;118:27;108:55;;159:1;156;149:12;108:55;-1:-1:-1;182:20:108;;-1:-1:-1;;;;;214:30:108;;211:50;;;257:1;254;247:12;211:50;294:4;286:6;282:17;270:29;;354:3;347:4;337:6;334:1;330:14;322:6;318:27;314:38;311:47;308:67;;;371:1;368;361:12;386:437;472:6;480;533:2;521:9;512:7;508:23;504:32;501:52;;;549:1;546;539:12;501:52;589:9;576:23;-1:-1:-1;;;;;614:6:108;611:30;608:50;;;654:1;651;644:12;608:50;693:70;755:7;746:6;735:9;731:22;693:70;:::i;:::-;782:8;;667:96;;-1:-1:-1;386:437:108;-1:-1:-1;;;;386:437:108:o;828:180::-;887:6;940:2;928:9;919:7;915:23;911:32;908:52;;;956:1;953;946:12;908:52;-1:-1:-1;979:23:108;;828:180;-1:-1:-1;828:180:108:o;1195:121::-;1280:10;1273:5;1269:22;1262:5;1259:33;1249:61;;1306:1;1303;1296:12;1321:381;1397:6;1405;1413;1466:2;1454:9;1445:7;1441:23;1437:32;1434:52;;;1482:1;1479;1472:12;1434:52;1518:9;1505:23;1495:33;;1578:2;1567:9;1563:18;1550:32;1591:30;1615:5;1591:30;:::i;:::-;1321:381;;1640:5;;-1:-1:-1;;;1692:2:108;1677:18;;;;1664:32;;1321:381::o;2123:127::-;2184:10;2179:3;2175:20;2172:1;2165:31;2215:4;2212:1;2205:15;2239:4;2236:1;2229:15;2255:253;2327:2;2321:9;2369:4;2357:17;;-1:-1:-1;;;;;2389:34:108;;2425:22;;;2386:62;2383:88;;;2451:18;;:::i;:::-;2487:2;2480:22;2255:253;:::o;2513:257::-;2585:4;2579:11;;;2617:17;;-1:-1:-1;;;;;2649:34:108;;2685:22;;;2646:62;2643:88;;;2711:18;;:::i;2775:275::-;2846:2;2840:9;2911:2;2892:13;;-1:-1:-1;;2888:27:108;2876:40;;-1:-1:-1;;;;;2931:34:108;;2967:22;;;2928:62;2925:88;;;2993:18;;:::i;:::-;3029:2;3022:22;2775:275;;-1:-1:-1;2775:275:108:o;3055:407::-;3120:5;-1:-1:-1;;;;;3146:6:108;3143:30;3140:56;;;3176:18;;:::i;:::-;3214:57;3259:2;3238:15;;-1:-1:-1;;3234:29:108;3265:4;3230:40;3214:57;:::i;:::-;3205:66;;3294:6;3287:5;3280:21;3334:3;3325:6;3320:3;3316:16;3313:25;3310:45;;;3351:1;3348;3341:12;3310:45;3400:6;3395:3;3388:4;3381:5;3377:16;3364:43;3454:1;3447:4;3438:6;3431:5;3427:18;3423:29;3416:40;3055:407;;;;;:::o;3467:451::-;3536:6;3589:2;3577:9;3568:7;3564:23;3560:32;3557:52;;;3605:1;3602;3595:12;3557:52;3645:9;3632:23;-1:-1:-1;;;;;3670:6:108;3667:30;3664:50;;;3710:1;3707;3700:12;3664:50;3733:22;;3786:4;3778:13;;3774:27;-1:-1:-1;3764:55:108;;3815:1;3812;3805:12;3764:55;3838:74;3904:7;3899:2;3886:16;3881:2;3877;3873:11;3838:74;:::i;:::-;3828:84;3467:451;-1:-1:-1;;;;3467:451:108:o;3923:148::-;-1:-1:-1;;;;;4015:31:108;;4005:42;;3995:70;;4061:1;4058;4051:12;4076:168;4161:20;;4190:48;4161:20;4190:48;:::i;:::-;4076:168;;;:::o;4249:288::-;4332:6;4385:2;4373:9;4364:7;4360:23;4356:32;4353:52;;;4401:1;4398;4391:12;4353:52;4440:9;4427:23;4459:48;4501:5;4459:48;:::i;5370:248::-;5438:6;5446;5499:2;5487:9;5478:7;5474:23;5470:32;5467:52;;;5515:1;5512;5505:12;5467:52;-1:-1:-1;;5538:23:108;;;5608:2;5593:18;;;5580:32;;-1:-1:-1;5370:248:108:o;6085:156::-;6151:20;;6211:4;6200:16;;6190:27;;6180:55;;6231:1;6228;6221:12;6246:182;6303:6;6356:2;6344:9;6335:7;6331:23;6327:32;6324:52;;;6372:1;6369;6362:12;6324:52;6395:27;6412:9;6395:27;:::i;6819:248::-;6739:12;;6727:25;;6801:4;6790:16;;;6784:23;6768:14;;;6761:47;7005:2;6990:18;;7017:44;6666:148;7072:347;7123:8;7133:6;7187:3;7180:4;7172:6;7168:17;7164:27;7154:55;;7205:1;7202;7195:12;7154:55;-1:-1:-1;7228:20:108;;-1:-1:-1;;;;;7260:30:108;;7257:50;;;7303:1;7300;7293:12;7257:50;7340:4;7332:6;7328:17;7316:29;;7392:3;7385:4;7376:6;7368;7364:19;7360:30;7357:39;7354:59;;;7409:1;7406;7399:12;7424:772;7557:6;7565;7573;7581;7634:2;7622:9;7613:7;7609:23;7605:32;7602:52;;;7650:1;7647;7640:12;7602:52;7690:9;7677:23;-1:-1:-1;;;;;7760:2:108;7752:6;7749:14;7746:34;;;7776:1;7773;7766:12;7746:34;7815:70;7877:7;7868:6;7857:9;7853:22;7815:70;:::i;:::-;7904:8;;-1:-1:-1;7789:96:108;-1:-1:-1;7992:2:108;7977:18;;7964:32;;-1:-1:-1;8008:16:108;;;8005:36;;;8037:1;8034;8027:12;8005:36;;8076:60;8128:7;8117:8;8106:9;8102:24;8076:60;:::i;:::-;7424:772;;;;-1:-1:-1;8155:8:108;-1:-1:-1;;;;7424:772:108:o;8201:127::-;8262:10;8257:3;8253:20;8250:1;8243:31;8293:4;8290:1;8283:15;8317:4;8314:1;8307:15;8333:242;8419:1;8412:5;8409:12;8399:143;;8464:10;8459:3;8455:20;8452:1;8445:31;8499:4;8496:1;8489:15;8527:4;8524:1;8517:15;8399:143;8551:18;;8333:242::o;8580:374::-;8806:13;;8788:32;;8867:4;8855:17;;;8849:24;8776:2;8761:18;;;8882:66;;8927:20;;8849:24;8882:66;:::i;:::-;;8580:374;;;;:::o;8959:159::-;9026:20;;9086:6;9075:18;;9065:29;;9055:57;;9108:1;9105;9098:12;9123:438;9186:5;9234:4;9222:9;9217:3;9213:19;9209:30;9206:50;;;9252:1;9249;9242:12;9206:50;9274:22;;:::i;:::-;9265:31;;9333:9;9320:23;9352:32;9376:7;9352:32;:::i;:::-;9393:22;;9447:37;9480:2;9465:18;;9447:37;:::i;:::-;9442:2;9435:5;9431:14;9424:61;9517:37;9550:2;9539:9;9535:18;9517:37;:::i;:::-;9512:2;9505:5;9501:14;9494:61;9123:438;;;;:::o;9566:317::-;9667:6;9675;9728:3;9716:9;9707:7;9703:23;9699:33;9696:53;;;9745:1;9742;9735:12;9696:53;9768:27;9785:9;9768:27;:::i;:::-;9758:37;;9814:63;9869:7;9864:2;9853:9;9849:18;9814:63;:::i;:::-;9804:73;;9566:317;;;;;:::o;10353:561::-;10432:6;10440;10448;10501:2;10489:9;10480:7;10476:23;10472:32;10469:52;;;10517:1;10514;10507:12;10469:52;10556:9;10543:23;10575:48;10617:5;10575:48;:::i;:::-;10642:5;-1:-1:-1;10698:2:108;10683:18;;10670:32;-1:-1:-1;;;;;10714:30:108;;10711:50;;;10757:1;10754;10747:12;10711:50;10796:58;10846:7;10837:6;10826:9;10822:22;10796:58;:::i;:::-;10353:561;;10873:8;;-1:-1:-1;10770:84:108;;-1:-1:-1;;;;10353:561:108:o;11340:173::-;11417:5;11462:3;11453:6;11448:3;11444:16;11440:26;11437:46;;;11479:1;11476;11469:12;11437:46;-1:-1:-1;11501:6:108;11340:173;-1:-1:-1;11340:173:108:o;11518:393::-;11607:8;11617:6;11671:3;11664:4;11656:6;11652:17;11648:27;11638:55;;11689:1;11686;11679:12;11638:55;-1:-1:-1;11712:20:108;;-1:-1:-1;;;;;11744:30:108;;11741:50;;;11787:1;11784;11777:12;11741:50;11824:4;11816:6;11812:17;11800:29;;11884:3;11877:4;11867:6;11864:1;11860:14;11852:6;11848:27;11844:38;11841:47;11838:67;;;11901:1;11898;11891:12;11916:625;11989:5;12037:4;12025:9;12020:3;12016:19;12012:30;12009:50;;;12055:1;12052;12045:12;12009:50;12077:22;;:::i;:::-;12068:31;;12135:9;12122:23;-1:-1:-1;;;;;12160:6:108;12157:30;12154:50;;;12200:1;12197;12190:12;12154:50;12223:22;;12276:4;12268:13;;12264:23;-1:-1:-1;12254:51:108;;12301:1;12298;12291:12;12254:51;12328:72;12396:3;12391:2;12378:16;12371:4;12367:2;12363:13;12328:72;:::i;:::-;12321:5;12314:87;;12463:4;12452:9;12448:20;12435:34;12428:4;12421:5;12417:16;12410:60;12530:2;12519:9;12515:18;12502:32;12497:2;12490:5;12486:14;12479:56;11916:625;;;;:::o;12546:1784::-;12871:6;12879;12887;12895;12903;12911;12919;12927;12935;12988:3;12976:9;12967:7;12963:23;12959:33;12956:53;;;13005:1;13002;12995:12;12956:53;13045:9;13032:23;-1:-1:-1;;;;;13115:2:108;13107:6;13104:14;13101:34;;;13131:1;13128;13121:12;13101:34;13170:58;13220:7;13211:6;13200:9;13196:22;13170:58;:::i;:::-;13247:8;;-1:-1:-1;13144:84:108;-1:-1:-1;13335:2:108;13320:18;;13307:32;;-1:-1:-1;13351:16:108;;;13348:36;;;13380:1;13377;13370:12;13348:36;13419:60;13471:7;13460:8;13449:9;13445:24;13419:60;:::i;:::-;13498:8;;-1:-1:-1;13393:86:108;-1:-1:-1;13393:86:108;;-1:-1:-1;13552:80:108;13624:7;13619:2;13604:18;;13552:80;:::i;:::-;13542:90;;13685:3;13674:9;13670:19;13657:33;13641:49;;13715:2;13705:8;13702:16;13699:36;;;13731:1;13728;13721:12;13699:36;13770:98;13860:7;13849:8;13838:9;13834:24;13770:98;:::i;:::-;13887:8;;-1:-1:-1;13744:124:108;-1:-1:-1;13975:3:108;13960:19;;13947:33;;-1:-1:-1;13992:16:108;;;13989:36;;;14021:1;14018;14011:12;13989:36;14044:79;14115:7;14104:8;14093:9;14089:24;14044:79;:::i;:::-;14034:89;;14176:3;14165:9;14161:19;14148:33;14132:49;;14206:2;14196:8;14193:16;14190:36;;;14222:1;14219;14212:12;14190:36;;14245:79;14316:7;14305:8;14294:9;14290:24;14245:79;:::i;:::-;14235:89;;;12546:1784;;;;;;;;;;;:::o;14567:1142::-;14765:6;14773;14781;14789;14797;14805;14858:3;14846:9;14837:7;14833:23;14829:33;14826:53;;;14875:1;14872;14865:12;14826:53;14915:9;14902:23;-1:-1:-1;;;;;14985:2:108;14977:6;14974:14;14971:34;;;15001:1;14998;14991:12;14971:34;15040:58;15090:7;15081:6;15070:9;15066:22;15040:58;:::i;:::-;15117:8;;-1:-1:-1;15014:84:108;-1:-1:-1;15205:2:108;15190:18;;15177:32;;-1:-1:-1;15221:16:108;;;15218:36;;;15250:1;15247;15240:12;15218:36;15289:60;15341:7;15330:8;15319:9;15315:24;15289:60;:::i;:::-;15368:8;;-1:-1:-1;15263:86:108;-1:-1:-1;15263:86:108;;-1:-1:-1;15422:80:108;15494:7;15489:2;15474:18;;15422:80;:::i;:::-;15412:90;;15555:3;15544:9;15540:19;15527:33;15511:49;;15585:2;15575:8;15572:16;15569:36;;;15601:1;15598;15591:12;15569:36;;15624:79;15695:7;15684:8;15673:9;15669:24;15624:79;:::i;:::-;15614:89;;;14567:1142;;;;;;;;:::o;15714:183::-;15774:4;-1:-1:-1;;;;;15799:6:108;15796:30;15793:56;;;15829:18;;:::i;:::-;-1:-1:-1;15874:1:108;15870:14;15886:4;15866:25;;15714:183::o;15902:1024::-;15994:6;16002;16055:2;16043:9;16034:7;16030:23;16026:32;16023:52;;;16071:1;16068;16061:12;16023:52;16110:9;16097:23;16129:30;16153:5;16129:30;:::i;:::-;16178:5;-1:-1:-1;16202:2:108;16240:18;;;16227:32;-1:-1:-1;;;;;16271:30:108;;16268:50;;;16314:1;16311;16304:12;16268:50;16337:22;;16390:4;16382:13;;16378:27;-1:-1:-1;16368:55:108;;16419:1;16416;16409:12;16368:55;16455:2;16442:16;16478:60;16494:43;16534:2;16494:43;:::i;:::-;16478:60;:::i;:::-;16572:15;;;16654:1;16650:10;;;;16642:19;;16638:28;;;16603:12;;;;16678:19;;;16675:39;;;16710:1;16707;16700:12;16675:39;16734:11;;;;16754:142;16770:6;16765:3;16762:15;16754:142;;;16836:17;;16824:30;;16787:12;;;;16874;;;;16754:142;;;16915:5;16905:15;;;;;;;15902:1024;;;;;:::o;16931:647::-;17100:2;17152:21;;;17222:13;;17125:18;;;17244:22;;;17071:4;;17100:2;17323:15;;;;17297:2;17282:18;;;17071:4;17366:186;17380:6;17377:1;17374:13;17366:186;;;17445:13;;17460:10;17441:30;17429:43;;17527:15;;;;17492:12;;;;17402:1;17395:9;17366:186;;;-1:-1:-1;17569:3:108;;16931:647;-1:-1:-1;;;;;;16931:647:108:o;17583:409::-;17653:6;17661;17714:2;17702:9;17693:7;17689:23;17685:32;17682:52;;;17730:1;17727;17720:12;17682:52;17770:9;17757:23;-1:-1:-1;;;;;17795:6:108;17792:30;17789:50;;;17835:1;17832;17825:12;17789:50;17874:58;17924:7;17915:6;17904:9;17900:22;17874:58;:::i;17997:137::-;-1:-1:-1;;;;;18075:5:108;18071:38;18064:5;18061:49;18051:77;;18124:1;18121;18114:12;18139:1127;18207:5;18260:3;18253:4;18245:6;18241:17;18237:27;18227:55;;18278:1;18275;18268:12;18227:55;18314:6;18301:20;18340:4;18364:60;18380:43;18420:2;18380:43;:::i;18364:60::-;18458:15;;;18544:1;18540:10;;;;18528:23;;18524:32;;;18489:12;;;;18568:15;;;18565:35;;;18596:1;18593;18586:12;18565:35;18632:2;18624:6;18620:15;18644:593;18660:6;18655:3;18652:15;18644:593;;;18738:4;18732:3;18727;18723:13;18719:24;18716:114;;;18784:1;18813:2;18809;18802:14;18716:114;18856:22;;:::i;:::-;18919:3;18906:17;18936:50;18978:7;18936:50;:::i;:::-;18999:22;;19062:12;;;19049:26;19088:32;19049:26;19088:32;:::i;:::-;19140:14;;;19133:31;19177:18;;19215:12;;;;18686:4;18677:14;18644:593;;;-1:-1:-1;19255:5:108;18139:1127;-1:-1:-1;;;;;;18139:1127:108:o;19271:664::-;19440:6;19448;19456;19509:3;19497:9;19488:7;19484:23;19480:33;19477:53;;;19526:1;19523;19516:12;19477:53;19549:54;19595:7;19584:9;19549:54;:::i;:::-;19539:64;;19653:2;19642:9;19638:18;19625:32;19666:30;19690:5;19666:30;:::i;:::-;19715:5;-1:-1:-1;19771:3:108;19756:19;;19743:33;-1:-1:-1;;;;;19788:30:108;;19785:50;;;19831:1;19828;19821:12;19785:50;19854:75;19921:7;19912:6;19901:9;19897:22;19854:75;:::i;:::-;19844:85;;;19271:664;;;;;:::o;19940:729::-;20010:5;20063:3;20056:4;20048:6;20044:17;20040:27;20030:55;;20081:1;20078;20071:12;20030:55;20117:6;20104:20;20143:4;20167:60;20183:43;20223:2;20183:43;:::i;20167:60::-;20261:15;;;20323:4;20366:11;;;20354:24;;20350:33;;;20292:12;;;;20249:3;20395:15;;;20392:35;;;20423:1;20420;20413:12;20392:35;20459:2;20451:6;20447:15;20471:169;20487:6;20482:3;20479:15;20471:169;;;20553:44;20593:3;20588;20553:44;:::i;:::-;20541:57;;20618:12;;;;20504;;20471:169;;;-1:-1:-1;20658:5:108;;19940:729;-1:-1:-1;;;;;;;19940:729:108:o;20674:735::-;20727:5;20780:3;20773:4;20765:6;20761:17;20757:27;20747:55;;20798:1;20795;20788:12;20747:55;20834:6;20821:20;20860:4;20884:60;20900:43;20940:2;20900:43;:::i;20884:60::-;20978:15;;;21064:1;21060:10;;;;21048:23;;21044:32;;;21009:12;;;;21088:15;;;21085:35;;;21116:1;21113;21106:12;21085:35;21152:2;21144:6;21140:15;21164:216;21180:6;21175:3;21172:15;21164:216;;;21260:3;21247:17;21277:30;21301:5;21277:30;:::i;:::-;21320:18;;21358:12;;;;21197;;21164:216;;21414:938;21492:5;21545:3;21538:4;21530:6;21526:17;21522:27;21512:55;;21563:1;21560;21553:12;21512:55;21599:6;21586:20;21625:4;21649:60;21665:43;21705:2;21665:43;:::i;21649:60::-;21743:15;;;21829:1;21825:10;;;;21813:23;;21809:32;;;21774:12;;;;21853:15;;;21850:35;;;21881:1;21878;21871:12;21850:35;21917:2;21909:6;21905:15;21929:394;21945:6;21940:3;21937:15;21929:394;;;22031:3;22018:17;-1:-1:-1;;;;;22054:11:108;22051:35;22048:125;;;22127:1;22156:2;22152;22145:14;22048:125;22198:82;22276:3;22271:2;22257:11;22249:6;22245:24;22241:33;22198:82;:::i;:::-;22186:95;;-1:-1:-1;22301:12:108;;;;21962;;21929:394;;22357:1413;22670:6;22678;22686;22694;22702;22710;22718;22726;22779:3;22767:9;22758:7;22754:23;22750:33;22747:53;;;22796:1;22793;22786:12;22747:53;22819:46;22855:9;22819:46;:::i;:::-;22809:56;;22884:55;22935:2;22924:9;22920:18;22884:55;:::i;:::-;22874:65;;22958:55;23009:2;22998:9;22994:18;22958:55;:::i;:::-;22948:65;;23032:55;23083:2;23072:9;23068:18;23032:55;:::i;:::-;23022:65;;23134:3;23123:9;23119:19;23106:33;23096:43;;23190:3;23179:9;23175:19;23162:33;-1:-1:-1;;;;;23255:2:108;23247:6;23244:14;23241:34;;;23271:1;23268;23261:12;23241:34;23294:77;23363:7;23354:6;23343:9;23339:22;23294:77;:::i;:::-;23284:87;;23424:3;23413:9;23409:19;23396:33;23380:49;;23454:2;23444:8;23441:16;23438:36;;;23470:1;23467;23460:12;23438:36;23493:62;23547:7;23536:8;23525:9;23521:24;23493:62;:::i;:::-;23483:72;;23608:3;23597:9;23593:19;23580:33;23564:49;;23638:2;23628:8;23625:16;23622:36;;;23654:1;23651;23644:12;23622:36;;23677:87;23756:7;23745:8;23734:9;23730:24;23677:87;:::i;:::-;23667:97;;;22357:1413;;;;;;;;;;;:::o;24261:386::-;24325:5;24373:4;24361:9;24356:3;24352:19;24348:30;24345:50;;;24391:1;24388;24381:12;24345:50;24413:22;;:::i;:::-;24404:31;;24458:27;24475:9;24458:27;:::i;:::-;24451:5;24444:42;24538:2;24527:9;24523:18;24510:32;24551:50;24593:7;24551:50;:::i;:::-;24628:2;24617:14;;24610:31;24621:5;24261:386;-1:-1:-1;;24261:386:108:o;24652:1168::-;24799:6;24807;24815;24823;24876:3;24864:9;24855:7;24851:23;24847:33;24844:53;;;24893:1;24890;24883:12;24844:53;24929:9;24916:23;24906:33;;24958:2;25011;25000:9;24996:18;24983:32;-1:-1:-1;;;;;25030:6:108;25027:30;25024:50;;;25070:1;25067;25060:12;25024:50;25093:22;;25146:4;25138:13;;25134:27;-1:-1:-1;25124:55:108;;25175:1;25172;25165:12;25124:55;25211:2;25198:16;25234:60;25250:43;25290:2;25250:43;:::i;25234:60::-;25328:15;;;25410:1;25406:10;;;;25398:19;;25394:28;;;25359:12;;;;25434:19;;;25431:39;;;25466:1;25463;25456:12;25431:39;25490:11;;;;25510:176;25526:6;25521:3;25518:15;25510:176;;;25594:49;25635:7;25630:3;25594:49;:::i;:::-;25589:3;25582:62;25673:2;25668:3;25664:12;25657:19;;25552:4;25547:3;25543:14;25536:21;;25510:176;;;24652:1168;;25705:5;;-1:-1:-1;;;;25757:4:108;25742:20;;25729:34;;25810:2;25795:18;25782:32;;24652:1168;-1:-1:-1;;;;24652:1168:108:o;25825:219::-;25977:2;25962:18;;25989:49;25966:9;26020:6;25989:49;:::i;26049:349::-;26251:2;26233:21;;;26290:2;26270:18;;;26263:30;26329:27;26324:2;26309:18;;26302:55;26389:2;26374:18;;26049:349::o;26403:127::-;26464:10;26459:3;26455:20;26452:1;26445:31;26495:4;26492:1;26485:15;26519:4;26516:1;26509:15;26535:127;26596:10;26591:3;26587:20;26584:1;26577:31;26627:4;26624:1;26617:15;26651:4;26648:1;26641:15;26667:135;26706:3;-1:-1:-1;;26727:17:108;;26724:43;;;26747:18;;:::i;:::-;-1:-1:-1;26794:1:108;26783:13;;26667:135::o;28339:258::-;28411:1;28421:113;28435:6;28432:1;28429:13;28421:113;;;28511:11;;;28505:18;28492:11;;;28485:39;28457:2;28450:10;28421:113;;;28552:6;28549:1;28546:13;28543:48;;;-1:-1:-1;;28587:1:108;28569:16;;28562:27;28339:258::o;28602:::-;28644:3;28682:5;28676:12;28709:6;28704:3;28697:19;28725:63;28781:6;28774:4;28769:3;28765:14;28758:4;28751:5;28747:16;28725:63;:::i;:::-;28842:2;28821:15;-1:-1:-1;;28817:29:108;28808:39;;;;28849:4;28804:50;;28602:258;-1:-1:-1;;28602:258:108:o;28865:220::-;29014:2;29003:9;28996:21;28977:4;29034:45;29075:2;29064:9;29060:18;29052:6;29034:45;:::i;29090:268::-;29160:6;29213:2;29201:9;29192:7;29188:23;29184:32;29181:52;;;29229:1;29226;29219:12;29181:52;29261:9;29255:16;29280:48;29322:5;29280:48;:::i;29363:406::-;29565:2;29547:21;;;29604:2;29584:18;;;29577:30;29643:34;29638:2;29623:18;;29616:62;-1:-1:-1;;;29709:2:108;29694:18;;29687:40;29759:3;29744:19;;29363:406::o;29774:277::-;29841:6;29894:2;29882:9;29873:7;29869:23;29865:32;29862:52;;;29910:1;29907;29900:12;29862:52;29942:9;29936:16;29995:5;29988:13;29981:21;29974:5;29971:32;29961:60;;30017:1;30014;30007:12;30056:404;30258:2;30240:21;;;30297:2;30277:18;;;30270:30;30336:34;30331:2;30316:18;;30309:62;-1:-1:-1;;;30402:2:108;30387:18;;30380:38;30450:3;30435:19;;30056:404::o;32125:545::-;32218:4;32224:6;32284:11;32271:25;32378:2;32374:7;32363:8;32347:14;32343:29;32339:43;32319:18;32315:68;32305:96;;32397:1;32394;32387:12;32305:96;32424:33;;32476:20;;;-1:-1:-1;;;;;;32508:30:108;;32505:50;;;32551:1;32548;32541:12;32505:50;32584:4;32572:17;;-1:-1:-1;32635:1:108;32631:14;;;32615;32611:35;32601:46;;32598:66;;;32660:1;32657;32650:12;32675:249;32744:6;32797:2;32785:9;32776:7;32772:23;32768:32;32765:52;;;32813:1;32810;32803:12;32765:52;32845:9;32839:16;32864:30;32888:5;32864:30;:::i;34510:128::-;34550:3;34581:1;34577:6;34574:1;34571:13;34568:39;;;34587:18;;:::i;:::-;-1:-1:-1;34623:9:108;;34510:128::o;34643:331::-;34748:9;34759;34801:8;34789:10;34786:24;34783:44;;;34823:1;34820;34813:12;34783:44;34852:6;34842:8;34839:20;34836:40;;;34872:1;34869;34862:12;34836:40;-1:-1:-1;;34898:23:108;;;34943:25;;;;;-1:-1:-1;34643:331:108:o;36307:248::-;36402:6;36455:2;36443:9;36434:7;36430:23;36426:32;36423:52;;;36471:1;36468;36461:12;36423:52;36494:55;36541:7;36530:9;36494:55;:::i;37037:125::-;37077:4;37105:1;37102;37099:8;37096:34;;;37110:18;;:::i;:::-;-1:-1:-1;37147:9:108;;37037:125::o;39163:1135::-;39489:4;39537:3;39526:9;39522:19;39568:6;39557:9;39550:25;39594:2;39632:6;39627:2;39616:9;39612:18;39605:34;39658:2;39696:3;39691:2;39680:9;39676:18;39669:31;39720:6;39755;39749:13;39786:6;39778;39771:22;39824:3;39813:9;39809:19;39802:26;;39863:2;39855:6;39851:15;39837:29;;39884:1;39894:291;39908:6;39905:1;39902:13;39894:291;;;39967:13;;40009:9;;40020:4;40005:20;39993:33;;40070:11;;40064:18;-1:-1:-1;;;;;40060:44:108;40046:12;;;40039:66;40160:15;;;;40125:12;;;;40101:1;39923:9;39894:291;;;-1:-1:-1;;40236:2:108;40221:18;;40214:34;;;;-1:-1:-1;;;;40279:3:108;40264:19;40257:35;40202:3;39163:1135;-1:-1:-1;;;39163:1135:108:o;40728:385::-;40883:3;40921:6;40915:13;40937:53;40983:6;40978:3;40971:4;40963:6;40959:17;40937:53;:::i;:::-;-1:-1:-1;;;;;;41051:26:108;;;;41012:16;;;;41037:41;;;41105:1;41094:13;;40728:385;-1:-1:-1;;40728:385:108:o;41118:386::-;41350:1;41346;41341:3;41337:11;41333:19;41325:6;41321:32;41310:9;41303:51;41390:6;41385:2;41374:9;41370:18;41363:34;41433:2;41428;41417:9;41413:18;41406:30;41284:4;41453:45;41494:2;41483:9;41479:18;41471:6;41453:45;:::i;41509:290::-;41579:6;41632:2;41620:9;41611:7;41607:23;41603:32;41600:52;;;41648:1;41645;41638:12;41600:52;41674:16;;-1:-1:-1;;;;;41719:31:108;;41709:42;;41699:70;;41765:1;41762;41755:12;43313:127;43374:10;43369:3;43365:20;43362:1;43355:31;43405:4;43402:1;43395:15;43429:4;43426:1;43419:15;43445:112;43477:1;43503;43493:35;;43508:18;;:::i;:::-;-1:-1:-1;43542:9:108;;43445:112::o;45871:315::-;-1:-1:-1;;;;;46046:32:108;;46028:51;;46115:2;46110;46095:18;;46088:30;;;-1:-1:-1;;46135:45:108;;46161:18;;46153:6;46135:45;:::i;46191:289::-;46366:6;46355:9;46348:25;46409:2;46404;46393:9;46389:18;46382:30;46329:4;46429:45;46470:2;46459:9;46455:18;46447:6;46429:45;:::i;46485:184::-;46555:6;46608:2;46596:9;46587:7;46583:23;46579:32;46576:52;;;46624:1;46621;46614:12;46576:52;-1:-1:-1;46647:16:108;;46485:184;-1:-1:-1;46485:184:108:o;46850:835::-;-1:-1:-1;;;;;47211:32:108;;47193:51;;47180:3;47165:19;;47253:62;47311:2;47296:18;;47288:6;46756:19;;46744:32;;46832:4;46821:16;;;46808:30;46792:14;;46785:54;46674:171;47253:62;47324:73;47393:2;47382:9;47378:18;47371:4;47363:6;47359:17;46756:19;;46744:32;;46832:4;46821:16;;;46808:30;46792:14;;46785:54;46674:171;47324:73;47459:4;47452;47444:6;47440:17;47434:3;47423:9;47419:19;47406:58;47498:3;47487:9;47483:19;47522:1;47518:2;47511:13;47568:4;47562:3;47554:6;47550:16;47546:2;47533:40;-1:-1:-1;47631:1:108;47607:3;47592:19;;47620:13;;;6739:12;;6727:25;;6801:4;6790:16;;;6784:23;6768:14;;;;6761:47;46850:835;;-1:-1:-1;;46850:835:108:o;50085:625::-;50359:1;50355;50350:3;50346:11;50342:19;50334:6;50330:32;50319:9;50312:51;50399:2;50394;50383:9;50379:18;50372:30;50293:4;50437:6;50431:13;50480:4;50475:2;50464:9;50460:18;50453:32;50508:52;50555:3;50544:9;50540:19;50526:12;50508:52;:::i;:::-;50494:66;;50616:2;50608:6;50604:15;50598:22;50591:4;50580:9;50576:20;50569:52;50676:2;50668:6;50664:15;50658:22;50652:3;50641:9;50637:19;50630:51;50698:6;50690:14;;;50085:625;;;;;:::o;50715:266::-;50803:6;50798:3;50791:19;50855:6;50848:5;50841:4;50836:3;50832:14;50819:43;-1:-1:-1;50907:1:108;50882:16;;;50900:4;50878:27;;;50871:38;;;;50963:2;50942:15;;;-1:-1:-1;;50938:29:108;50929:39;;;50925:50;;50715:266::o;50986:341::-;-1:-1:-1;;;;;51171:32:108;;51153:51;;51240:2;51235;51220:18;;51213:30;;;-1:-1:-1;;51260:61:108;;51302:18;;51294:6;51286;51260:61;:::i;51332:412::-;51574:1;51570;51565:3;51561:11;51557:19;51549:6;51545:32;51534:9;51527:51;51614:6;51609:2;51598:9;51594:18;51587:34;51657:2;51652;51641:9;51637:18;51630:30;51508:4;51677:61;51734:2;51723:9;51719:18;51711:6;51703;51677:61;:::i;:::-;51669:69;51332:412;-1:-1:-1;;;;;;51332:412:108:o;51749:732::-;51813:5;51866:3;51859:4;51851:6;51847:17;51843:27;51833:55;;51884:1;51881;51874:12;51833:55;51913:6;51907:13;51939:4;51963:60;51979:43;52019:2;51979:43;:::i;51963:60::-;52057:15;;;52143:1;52139:10;;;;52127:23;;52123:32;;;52088:12;;;;52167:15;;;52164:35;;;52195:1;52192;52185:12;52164:35;52231:2;52223:6;52219:15;52243:209;52259:6;52254:3;52251:15;52243:209;;;52332:3;52326:10;52349:30;52373:5;52349:30;:::i;:::-;52392:18;;52430:12;;;;52276;;52243:209;;52486:610;52613:6;52621;52674:2;52662:9;52653:7;52649:23;52645:32;52642:52;;;52690:1;52687;52680:12;52642:52;52723:9;52717:16;-1:-1:-1;;;;;52793:2:108;52785:6;52782:14;52779:34;;;52809:1;52806;52799:12;52779:34;52832:71;52895:7;52886:6;52875:9;52871:22;52832:71;:::i;:::-;52822:81;;52949:2;52938:9;52934:18;52928:25;52912:41;;52978:2;52968:8;52965:16;52962:36;;;52994:1;52991;52984:12;52962:36;;53017:73;53082:7;53071:8;53060:9;53056:24;53017:73;:::i;:::-;53007:83;;;52486:610;;;;;:::o;53101:315::-;53286:6;53275:9;53268:25;53329:2;53324;53313:9;53309:18;53302:30;53249:4;53349:61;53406:2;53395:9;53391:18;53383:6;53375;53349:61;:::i;53421:954::-;53515:6;53546:2;53589;53577:9;53568:7;53564:23;53560:32;53557:52;;;53605:1;53602;53595:12;53557:52;53638:9;53632:16;-1:-1:-1;;;;;53663:6:108;53660:30;53657:50;;;53703:1;53700;53693:12;53657:50;53726:22;;53779:4;53771:13;;53767:27;-1:-1:-1;53757:55:108;;53808:1;53805;53798:12;53757:55;53837:2;53831:9;53860:60;53876:43;53916:2;53876:43;:::i;53860:60::-;53954:15;;;54036:1;54032:10;;;;54024:19;;54020:28;;;53985:12;;;;54060:19;;;54057:39;;;54092:1;54089;54082:12;54057:39;54116:11;;;;54136:209;54152:6;54147:3;54144:15;54136:209;;;54225:3;54219:10;54242:30;54266:5;54242:30;:::i;:::-;54285:18;;54169:12;;;;54323;;;;54136:209;;;54364:5;53421:954;-1:-1:-1;;;;;;;53421:954:108:o;55542:249::-;55611:6;55664:2;55652:9;55643:7;55639:23;55635:32;55632:52;;;55680:1;55677;55670:12;55632:52;55712:9;55706:16;55731:30;55755:5;55731:30;:::i;57214:204::-;57252:3;57288:4;57285:1;57281:12;57320:4;57317:1;57313:12;57355:3;57349:4;57345:14;57340:3;57337:23;57334:49;;;57363:18;;:::i;:::-;57399:13;;57214:204;-1:-1:-1;;;57214:204:108:o;57423:1041::-;57681:4;57729:2;57718:9;57714:18;57771:4;57763:6;57759:17;57748:9;57741:36;57796:2;-1:-1:-1;;;;;57891:2:108;57883:6;57879:15;57874:2;57863:9;57859:18;57852:43;57914:2;57952;57947;57936:9;57932:18;57925:30;57975:6;58010;58004:13;58041:6;58033;58026:22;58079:3;58068:9;58064:19;58057:26;;58118:2;58110:6;58106:15;58092:29;;58139:1;58149:289;58163:6;58160:1;58157:13;58149:289;;;58222:13;;58264:9;;-1:-1:-1;;;;;58260:35:108;58248:48;;58340:11;;58334:18;58330:27;;58316:12;;;58309:49;58413:15;;;;58378:12;;;;58292:1;58178:9;58149:289;;;-1:-1:-1;58455:3:108;;57423:1041;-1:-1:-1;;;;;;;;;;57423:1041:108:o;60303:290::-;60372:6;60425:2;60413:9;60404:7;60400:23;60396:32;60393:52;;;60441:1;60438;60431:12;60393:52;60467:16;;-1:-1:-1;;;;;;60512:32:108;;60502:43;;60492:71;;60559:1;60556;60549:12;61570:278;61609:7;-1:-1:-1;;;;;61694:2:108;61691:1;61687:10;61724:2;61721:1;61717:10;61780:3;61776:2;61772:12;61767:3;61764:21;61757:3;61750:11;61743:19;61739:47;61736:73;;;61789:18;;:::i;:::-;61829:13;;61570:278;-1:-1:-1;;;;61570:278:108:o;61853:207::-;61892:1;-1:-1:-1;;;;;61971:2:108;61968:1;61964:10;61993:3;61983:37;;62000:18;;:::i;:::-;62038:10;;62034:20;;;;;61853:207;-1:-1:-1;;61853:207:108:o","linkReferences":{},"immutableReferences":{"49752":[{"start":16179,"length":32}],"49754":[{"start":16137,"length":32}],"49756":[{"start":16095,"length":32}],"49758":[{"start":16262,"length":32}],"49760":[{"start":16299,"length":32}],"49762":[{"start":16220,"length":32}],"7790":[{"start":1158,"length":32},{"start":11833,"length":32},{"start":13959,"length":32}],"7794":[{"start":1346,"length":32},{"start":3758,"length":32},{"start":8711,"length":32},{"start":12003,"length":32},{"start":12489,"length":32},{"start":12607,"length":32},{"start":14143,"length":32},{"start":15744,"length":32}],"7798":[{"start":1404,"length":32},{"start":8649,"length":32},{"start":9801,"length":32},{"start":12129,"length":32},{"start":14271,"length":32},{"start":14869,"length":32},{"start":15491,"length":32}],"7802":[{"start":1572,"length":32},{"start":4492,"length":32},{"start":8766,"length":32},{"start":12257,"length":32},{"start":14440,"length":32},{"start":15620,"length":32}]}},"methodIdentifiers":{"OPERATOR_CHURN_APPROVAL_TYPEHASH()":"ca0de882","PUBKEY_REGISTRATION_TYPEHASH()":"9feab859","blsApkRegistry()":"5df45946","calculateOperatorChurnApprovalDigestHash(bytes32,(uint8,address)[],bytes32,uint256)":"f8581191","churnApprover()":"054310e6","createQuorum((uint32,uint16,uint16),uint96,(address,uint96)[])":"d75b4c88","deregisterOperator(bytes)":"ca4f2d97","ejectOperator(address,bytes)":"6e3b17db","ejector()":"28f61b31","getCurrentQuorumBitmap(bytes32)":"871ef049","getOperator(address)":"5865c60c","getOperatorFromId(bytes32)":"296bb064","getOperatorId(address)":"13542a4e","getOperatorSetParams(uint8)":"e65797ad","getOperatorStatus(address)":"fd39105a","getQuorumBitmapAtBlockNumberByIndex(bytes32,uint32,uint256)":"04ec6351","getQuorumBitmapHistoryLength(bytes32)":"03fd3492","getQuorumBitmapIndicesAtBlockNumber(uint32,bytes32[])":"c391425e","getQuorumBitmapUpdateByIndex(bytes32,uint256)":"1eb812da","indexRegistry()":"9e9923c2","initialize(address,address,address,address,uint256,(uint32,uint16,uint16)[],uint96[],(address,uint96)[][])":"dd8283f3","isChurnApproverSaltUsed(bytes32)":"1478851f","numRegistries()":"d72d8dd6","owner()":"8da5cb5b","pause(uint256)":"136439dd","pauseAll()":"595c6a67","paused()":"5c975abb","paused(uint8)":"5ac86ab7","pauserRegistry()":"886f1195","pubkeyRegistrationMessageHash(address)":"3c2a7f4c","quorumCount()":"9aa1653d","quorumUpdateBlockNumber(uint8)":"249a0c42","registerOperator(bytes,string,((uint256,uint256),(uint256,uint256),(uint256[2],uint256[2])),(bytes,bytes32,uint256))":"a50857bf","registerOperatorWithChurn(bytes,string,((uint256,uint256),(uint256,uint256),(uint256[2],uint256[2])),(uint8,address)[],(bytes,bytes32,uint256),(bytes,bytes32,uint256))":"9b5d177b","registries(uint256)":"6347c900","renounceOwnership()":"715018a6","serviceManager()":"3998fdd3","setChurnApprover(address)":"29d1e0c3","setEjector(address)":"2cdd1e86","setOperatorSetParams(uint8,(uint32,uint16,uint16))":"5b0b829f","setPauserRegistry(address)":"10d67a2f","stakeRegistry()":"68304835","transferOwnership(address)":"f2fde38b","unpause(uint256)":"fabc1cbc","updateOperators(address[])":"00cf2ab5","updateOperatorsForQuorum(address[][],bytes)":"5140a548","updateSocket(string)":"0cf4b767"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.12+commit.f00d7308\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IServiceManager\",\"name\":\"_serviceManager\",\"type\":\"address\"},{\"internalType\":\"contract IStakeRegistry\",\"name\":\"_stakeRegistry\",\"type\":\"address\"},{\"internalType\":\"contract IBLSApkRegistry\",\"name\":\"_blsApkRegistry\",\"type\":\"address\"},{\"internalType\":\"contract IIndexRegistry\",\"name\":\"_indexRegistry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"prevChurnApprover\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newChurnApprover\",\"type\":\"address\"}],\"name\":\"ChurnApproverUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"prevEjector\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newEjector\",\"type\":\"address\"}],\"name\":\"EjectorUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"}],\"name\":\"OperatorDeregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"}],\"name\":\"OperatorRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"maxOperatorCount\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"kickBIPsOfOperatorStake\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"kickBIPsOfTotalStake\",\"type\":\"uint16\"}],\"indexed\":false,\"internalType\":\"struct IRegistryCoordinator.OperatorSetParam\",\"name\":\"operatorSetParams\",\"type\":\"tuple\"}],\"name\":\"OperatorSetParamsUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"socket\",\"type\":\"string\"}],\"name\":\"OperatorSocketUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPausedStatus\",\"type\":\"uint256\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"contract IPauserRegistry\",\"name\":\"pauserRegistry\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contract IPauserRegistry\",\"name\":\"newPauserRegistry\",\"type\":\"address\"}],\"name\":\"PauserRegistrySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"blocknumber\",\"type\":\"uint256\"}],\"name\":\"QuorumBlockNumberUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPausedStatus\",\"type\":\"uint256\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"OPERATOR_CHURN_APPROVAL_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PUBKEY_REGISTRATION_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"blsApkRegistry\",\"outputs\":[{\"internalType\":\"contract IBLSApkRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"registeringOperatorId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"internalType\":\"struct IRegistryCoordinator.OperatorKickParam[]\",\"name\":\"operatorKickParams\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"name\":\"calculateOperatorChurnApprovalDigestHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"churnApprover\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"maxOperatorCount\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"kickBIPsOfOperatorStake\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"kickBIPsOfTotalStake\",\"type\":\"uint16\"}],\"internalType\":\"struct IRegistryCoordinator.OperatorSetParam\",\"name\":\"operatorSetParams\",\"type\":\"tuple\"},{\"internalType\":\"uint96\",\"name\":\"minimumStake\",\"type\":\"uint96\"},{\"components\":[{\"internalType\":\"contract IStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"multiplier\",\"type\":\"uint96\"}],\"internalType\":\"struct IStakeRegistry.StrategyParams[]\",\"name\":\"strategyParams\",\"type\":\"tuple[]\"}],\"name\":\"createQuorum\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"}],\"name\":\"deregisterOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"}],\"name\":\"ejectOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ejector\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"}],\"name\":\"getCurrentQuorumBitmap\",\"outputs\":[{\"internalType\":\"uint192\",\"name\":\"\",\"type\":\"uint192\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperator\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"internalType\":\"enum IRegistryCoordinator.OperatorStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"internalType\":\"struct IRegistryCoordinator.OperatorInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"}],\"name\":\"getOperatorFromId\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"}],\"name\":\"getOperatorSetParams\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"maxOperatorCount\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"kickBIPsOfOperatorStake\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"kickBIPsOfTotalStake\",\"type\":\"uint16\"}],\"internalType\":\"struct IRegistryCoordinator.OperatorSetParam\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorStatus\",\"outputs\":[{\"internalType\":\"enum IRegistryCoordinator.OperatorStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"blockNumber\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getQuorumBitmapAtBlockNumberByIndex\",\"outputs\":[{\"internalType\":\"uint192\",\"name\":\"\",\"type\":\"uint192\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"}],\"name\":\"getQuorumBitmapHistoryLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"blockNumber\",\"type\":\"uint32\"},{\"internalType\":\"bytes32[]\",\"name\":\"operatorIds\",\"type\":\"bytes32[]\"}],\"name\":\"getQuorumBitmapIndicesAtBlockNumber\",\"outputs\":[{\"internalType\":\"uint32[]\",\"name\":\"\",\"type\":\"uint32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getQuorumBitmapUpdateByIndex\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"updateBlockNumber\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"nextUpdateBlockNumber\",\"type\":\"uint32\"},{\"internalType\":\"uint192\",\"name\":\"quorumBitmap\",\"type\":\"uint192\"}],\"internalType\":\"struct IRegistryCoordinator.QuorumBitmapUpdate\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"indexRegistry\",\"outputs\":[{\"internalType\":\"contract IIndexRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_initialOwner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_churnApprover\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_ejector\",\"type\":\"address\"},{\"internalType\":\"contract IPauserRegistry\",\"name\":\"_pauserRegistry\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_initialPausedStatus\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"maxOperatorCount\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"kickBIPsOfOperatorStake\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"kickBIPsOfTotalStake\",\"type\":\"uint16\"}],\"internalType\":\"struct IRegistryCoordinator.OperatorSetParam[]\",\"name\":\"_operatorSetParams\",\"type\":\"tuple[]\"},{\"internalType\":\"uint96[]\",\"name\":\"_minimumStakes\",\"type\":\"uint96[]\"},{\"components\":[{\"internalType\":\"contract IStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"multiplier\",\"type\":\"uint96\"}],\"internalType\":\"struct IStakeRegistry.StrategyParams[][]\",\"name\":\"_strategyParams\",\"type\":\"tuple[][]\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"isChurnApproverSaltUsed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"numRegistries\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newPausedStatus\",\"type\":\"uint256\"}],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"index\",\"type\":\"uint8\"}],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauserRegistry\",\"outputs\":[{\"internalType\":\"contract IPauserRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"pubkeyRegistrationMessageHash\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"quorumCount\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"name\":\"quorumUpdateBlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"socket\",\"type\":\"string\"},{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point\",\"name\":\"pubkeyRegistrationSignature\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point\",\"name\":\"pubkeyG1\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256[2]\",\"name\":\"X\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[2]\",\"name\":\"Y\",\"type\":\"uint256[2]\"}],\"internalType\":\"struct BN254.G2Point\",\"name\":\"pubkeyG2\",\"type\":\"tuple\"}],\"internalType\":\"struct IBLSApkRegistry.PubkeyRegistrationParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"internalType\":\"struct ISignatureUtils.SignatureWithSaltAndExpiry\",\"name\":\"operatorSignature\",\"type\":\"tuple\"}],\"name\":\"registerOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"socket\",\"type\":\"string\"},{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point\",\"name\":\"pubkeyRegistrationSignature\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point\",\"name\":\"pubkeyG1\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256[2]\",\"name\":\"X\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[2]\",\"name\":\"Y\",\"type\":\"uint256[2]\"}],\"internalType\":\"struct BN254.G2Point\",\"name\":\"pubkeyG2\",\"type\":\"tuple\"}],\"internalType\":\"struct IBLSApkRegistry.PubkeyRegistrationParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"internalType\":\"struct IRegistryCoordinator.OperatorKickParam[]\",\"name\":\"operatorKickParams\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"internalType\":\"struct ISignatureUtils.SignatureWithSaltAndExpiry\",\"name\":\"churnApproverSignature\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"internalType\":\"struct ISignatureUtils.SignatureWithSaltAndExpiry\",\"name\":\"operatorSignature\",\"type\":\"tuple\"}],\"name\":\"registerOperatorWithChurn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"registries\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"serviceManager\",\"outputs\":[{\"internalType\":\"contract IServiceManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_churnApprover\",\"type\":\"address\"}],\"name\":\"setChurnApprover\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_ejector\",\"type\":\"address\"}],\"name\":\"setEjector\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"maxOperatorCount\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"kickBIPsOfOperatorStake\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"kickBIPsOfTotalStake\",\"type\":\"uint16\"}],\"internalType\":\"struct IRegistryCoordinator.OperatorSetParam\",\"name\":\"operatorSetParams\",\"type\":\"tuple\"}],\"name\":\"setOperatorSetParams\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IPauserRegistry\",\"name\":\"newPauserRegistry\",\"type\":\"address\"}],\"name\":\"setPauserRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stakeRegistry\",\"outputs\":[{\"internalType\":\"contract IStakeRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newPausedStatus\",\"type\":\"uint256\"}],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"operators\",\"type\":\"address[]\"}],\"name\":\"updateOperators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[][]\",\"name\":\"operatorsPerQuorum\",\"type\":\"address[][]\"},{\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"}],\"name\":\"updateOperatorsForQuorum\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"socket\",\"type\":\"string\"}],\"name\":\"updateSocket\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Layr Labs, Inc.\",\"kind\":\"dev\",\"methods\":{\"calculateOperatorChurnApprovalDigestHash(bytes32,(uint8,address)[],bytes32,uint256)\":{\"params\":{\"expiry\":\"The desired expiry time of the churnApprover's signature\",\"operatorKickParams\":\"The parameters needed to kick the operator from the quorums that have reached their caps\",\"registeringOperatorId\":\"The is of the registering operator \",\"salt\":\"The salt to use for the churnApprover's signature\"}},\"deregisterOperator(bytes)\":{\"params\":{\"quorumNumbers\":\"is an ordered byte array containing the quorum numbers being deregistered from\"}},\"ejectOperator(address,bytes)\":{\"params\":{\"operator\":\"is the operator to eject\",\"quorumNumbers\":\"are the quorum numbers to eject the operator from\"}},\"getQuorumBitmapAtBlockNumberByIndex(bytes32,uint32,uint256)\":{\"details\":\"reverts if `index` is incorrect \"},\"owner()\":{\"details\":\"need to override function here since its defined in both these contracts\"},\"pause(uint256)\":{\"details\":\"This function can only pause functionality, and thus cannot 'unflip' any bit in `_paused` from 1 to 0.\",\"params\":{\"newPausedStatus\":\"represents the new value for `_paused` to take, which means it may flip several bits at once.\"}},\"pubkeyRegistrationMessageHash(address)\":{\"params\":{\"operator\":\"is the address of the operator registering their BLS public key\"}},\"registerOperator(bytes,string,((uint256,uint256),(uint256,uint256),(uint256[2],uint256[2])),(bytes,bytes32,uint256))\":{\"details\":\"the `params` input param is ignored if the caller has previously registered a public key\",\"params\":{\"operatorSignature\":\"is the signature of the operator used by the AVS to register the operator in the delegation manager\",\"params\":\"contains the G1 & G2 public keys of the operator, and a signature proving their ownership\",\"quorumNumbers\":\"is an ordered byte array containing the quorum numbers being registered for\",\"socket\":\"is the socket of the operator\"}},\"registerOperatorWithChurn(bytes,string,((uint256,uint256),(uint256,uint256),(uint256[2],uint256[2])),(uint8,address)[],(bytes,bytes32,uint256),(bytes,bytes32,uint256))\":{\"details\":\"the `params` input param is ignored if the caller has previously registered a public key\",\"params\":{\"churnApproverSignature\":\"is the signature of the churnApprover on the operator kick params\",\"operatorKickParams\":\"are used to determine which operator is removed to maintain quorum capacity as the operator registers for quorums.\",\"operatorSignature\":\"is the signature of the operator used by the AVS to register the operator in the delegation manager\",\"params\":\"contains the G1 & G2 public keys of the operator, and a signature proving their ownership\",\"quorumNumbers\":\"is an ordered byte array containing the quorum numbers being registered for\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"setChurnApprover(address)\":{\"details\":\"only callable by the owner\",\"params\":{\"_churnApprover\":\"is the address of the churnApprover\"}},\"setEjector(address)\":{\"details\":\"only callable by the owner\",\"params\":{\"_ejector\":\"is the address of the ejector\"}},\"setOperatorSetParams(uint8,(uint32,uint16,uint16))\":{\"details\":\"only callable by the owner\",\"params\":{\"operatorSetParams\":\"is the parameters of the operator set for the `quorumNumber`\",\"quorumNumber\":\"is the quorum number to set the maximum number of operators for\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"unpause(uint256)\":{\"details\":\"This function can only unpause functionality, and thus cannot 'flip' any bit in `_paused` from 0 to 1.\",\"params\":{\"newPausedStatus\":\"represents the new value for `_paused` to take, which means it may flip several bits at once.\"}},\"updateOperatorsForQuorum(address[][],bytes)\":{\"details\":\"This method is used to update the stakes of all operators in a quorum at once, rather than individually. Performs sanitization checks on the input array lengths, quorumNumbers existing, and that quorumNumbers are ordered. Function must also not be paused by the PAUSED_UPDATE_OPERATOR flag.\",\"params\":{\"operatorsPerQuorum\":\"is an array of arrays of operators to update for each quorum. Note that each nested array of operators must be sorted in ascending address order to ensure that all operators in the quorum are updated\",\"quorumNumbers\":\"is an array of quorum numbers to update\"}},\"updateSocket(string)\":{\"params\":{\"socket\":\"is the new socket of the operator\"}}},\"title\":\"A `RegistryCoordinator` that has three registries: 1) a `StakeRegistry` that keeps track of operators' stakes 2) a `BLSApkRegistry` that keeps track of operators' BLS public keys and aggregate BLS public keys for each quorum 3) an `IndexRegistry` that keeps track of an ordered list of operators for each quorum \",\"version\":1},\"userdoc\":{\"events\":{\"OperatorDeregistered(address,bytes32)\":{\"notice\":\"Emits when an operator is deregistered\"},\"OperatorRegistered(address,bytes32)\":{\"notice\":\"Emits when an operator is registered\"},\"Paused(address,uint256)\":{\"notice\":\"Emitted when the pause is triggered by `account`, and changed to `newPausedStatus`.\"},\"PauserRegistrySet(address,address)\":{\"notice\":\"Emitted when the `pauserRegistry` is set to `newPauserRegistry`.\"},\"QuorumBlockNumberUpdated(uint8,uint256)\":{\"notice\":\"emitted when all the operators for a quorum are updated at once\"},\"Unpaused(address,uint256)\":{\"notice\":\"Emitted when the pause is lifted by `account`, and changed to `newPausedStatus`.\"}},\"kind\":\"user\",\"methods\":{\"OPERATOR_CHURN_APPROVAL_TYPEHASH()\":{\"notice\":\"The EIP-712 typehash for the `DelegationApproval` struct used by the contract\"},\"PUBKEY_REGISTRATION_TYPEHASH()\":{\"notice\":\"The EIP-712 typehash used for registering BLS public keys\"},\"blsApkRegistry()\":{\"notice\":\"the BLS Aggregate Pubkey Registry contract that will keep track of operators' aggregate BLS public keys per quorum\"},\"calculateOperatorChurnApprovalDigestHash(bytes32,(uint8,address)[],bytes32,uint256)\":{\"notice\":\"Public function for the the churnApprover signature hash calculation when operators are being kicked from quorums\"},\"churnApprover()\":{\"notice\":\"the address of the entity allowed to sign off on operators getting kicked out of the AVS during registration\"},\"createQuorum((uint32,uint16,uint16),uint96,(address,uint96)[])\":{\"notice\":\"Creates a quorum and initializes it in each registry contract\"},\"deregisterOperator(bytes)\":{\"notice\":\"Deregisters the caller from one or more quorums\"},\"ejectOperator(address,bytes)\":{\"notice\":\"Ejects the provided operator from the provided quorums from the AVS\"},\"ejector()\":{\"notice\":\"the address of the entity allowed to eject operators from the AVS\"},\"getCurrentQuorumBitmap(bytes32)\":{\"notice\":\"Returns the current quorum bitmap for the given `operatorId` or 0 if the operator is not registered for any quorum\"},\"getOperator(address)\":{\"notice\":\"Returns the operator struct for the given `operator`\"},\"getOperatorFromId(bytes32)\":{\"notice\":\"Returns the operator address for the given `operatorId`\"},\"getOperatorId(address)\":{\"notice\":\"Returns the operatorId for the given `operator`\"},\"getOperatorSetParams(uint8)\":{\"notice\":\"Returns the operator set params for the given `quorumNumber`\"},\"getOperatorStatus(address)\":{\"notice\":\"Returns the status for the given `operator`\"},\"getQuorumBitmapAtBlockNumberByIndex(bytes32,uint32,uint256)\":{\"notice\":\"Returns the quorum bitmap for the given `operatorId` at the given `blockNumber` via the `index`\"},\"getQuorumBitmapHistoryLength(bytes32)\":{\"notice\":\"Returns the length of the quorum bitmap history for the given `operatorId`\"},\"getQuorumBitmapIndicesAtBlockNumber(uint32,bytes32[])\":{\"notice\":\"Returns the indices of the quorumBitmaps for the provided `operatorIds` at the given `blockNumber`\"},\"getQuorumBitmapUpdateByIndex(bytes32,uint256)\":{\"notice\":\"Returns the `index`th entry in the operator with `operatorId`'s bitmap history\"},\"indexRegistry()\":{\"notice\":\"the Index Registry contract that will keep track of operators' indexes\"},\"isChurnApproverSaltUsed(bytes32)\":{\"notice\":\"whether the salt has been used for an operator churn approval\"},\"numRegistries()\":{\"notice\":\"Returns the number of registries\"},\"pause(uint256)\":{\"notice\":\"This function is used to pause an EigenLayer contract's functionality. It is permissioned to the `pauser` address, which is expected to be a low threshold multisig.\"},\"pauseAll()\":{\"notice\":\"Alias for `pause(type(uint256).max)`.\"},\"paused()\":{\"notice\":\"Returns the current paused status as a uint256.\"},\"paused(uint8)\":{\"notice\":\"Returns 'true' if the `indexed`th bit of `_paused` is 1, and 'false' otherwise\"},\"pauserRegistry()\":{\"notice\":\"Address of the `PauserRegistry` contract that this contract defers to for determining access control (for pausing).\"},\"pubkeyRegistrationMessageHash(address)\":{\"notice\":\"Returns the message hash that an operator must sign to register their BLS public key.\"},\"quorumCount()\":{\"notice\":\"the current number of quorums supported by the registry coordinator\"},\"quorumUpdateBlockNumber(uint8)\":{\"notice\":\"mapping from quorum number to the latest block that all quorums were updated all at once\"},\"registerOperator(bytes,string,((uint256,uint256),(uint256,uint256),(uint256[2],uint256[2])),(bytes,bytes32,uint256))\":{\"notice\":\"Registers msg.sender as an operator for one or more quorums. If any quorum reaches its maximum operator capacity, this method will fail.\"},\"registerOperatorWithChurn(bytes,string,((uint256,uint256),(uint256,uint256),(uint256[2],uint256[2])),(uint8,address)[],(bytes,bytes32,uint256),(bytes,bytes32,uint256))\":{\"notice\":\"Registers msg.sender as an operator for one or more quorums. If any quorum reaches its maximum operator capacity, `operatorKickParams` is used to replace an old operator with the new one.\"},\"registries(uint256)\":{\"notice\":\"the dynamic-length array of the registries this coordinator is coordinating\"},\"serviceManager()\":{\"notice\":\"the ServiceManager for this AVS, which forwards calls onto EigenLayer's core contracts\"},\"setChurnApprover(address)\":{\"notice\":\"Sets the churnApprover\"},\"setEjector(address)\":{\"notice\":\"Sets the ejector\"},\"setOperatorSetParams(uint8,(uint32,uint16,uint16))\":{\"notice\":\"Updates a quorum's OperatorSetParams\"},\"setPauserRegistry(address)\":{\"notice\":\"Allows the unpauser to set a new pauser registry\"},\"stakeRegistry()\":{\"notice\":\"the Stake Registry contract that will keep track of operators' stakes\"},\"unpause(uint256)\":{\"notice\":\"This function is used to unpause an EigenLayer contract's functionality. It is permissioned to the `unpauser` address, which is expected to be a high threshold multisig or governance contract.\"},\"updateOperators(address[])\":{\"notice\":\"Updates the stakes of one or more operators in the StakeRegistry, for each quorum the operator is registered for. If any operator no longer meets the minimum stake required to remain in the quorum, they are deregistered.\"},\"updateOperatorsForQuorum(address[][],bytes)\":{\"notice\":\"Updates the stakes of all operators for each of the specified quorums in the StakeRegistry. Each quorum also has their quorumUpdateBlockNumber updated. which is meant to keep track of when operators were last all updated at once.\"},\"updateSocket(string)\":{\"notice\":\"Updates the socket of the msg.sender given they are a registered operator\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/eigenlayer-middleware/src/RegistryCoordinator.sol\":\"RegistryCoordinator\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/openzeppelin-contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/eigenlayer-contracts/\",\":eigenlayer-core/=lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/eigenlayer-contracts/script/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xd3f57f3e95226d95a41399385a5b7512df7a2c6e8b3bf84d8f1e1d9d3a8acad1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1750f88e93c0f63c05d57d8f9770adaeec23209df8c8a1c004df4244750bbae9\",\"dweb:/ipfs/QmQYCHgJLpGiDauL2Z3WF5ofansgcngKFV3AeeDo2EsJDb\"]},\"lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xda0ef432f8d186276739e8f8547712c9978c172de48ca0afc7935d0e84cabb03\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://97de6d182477a30c298880e0896b639ada35637a6acc4e3fadf89bf68ae83096\",\"dweb:/ipfs/QmUPzdhiKXFuFZaFvKFMrYMeF93N7wiKyigELVjRA1WsqA\"]},\"lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x3ac96c08e5ac35a015a8b943fe4509370f73cfb420375efb3808fe3c13840679\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://e76b0c1d96925dc54b11365ceb8178a1de0b2bdb1260da0f9942048d35892bc4\",\"dweb:/ipfs/QmSyew5ejxyEXsbq5t6pmhmBZmojQcesgNXgTDJmJMg1TU\"]},\"lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x0d17c9b2b6cb6a33685ee6fc2f4c6e1b6ac59fd7555b42591575abdd65bf6395\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://14fdbaa196e46791b75e8fbb1862bc02ae76cfbd956cb8967dc18f0f88182ad1\",\"dweb:/ipfs/QmS3p4xrqgVABzAeG3ssinhKXEm6bCXR24i14VJtGJDv46\"]},\"lib/eigenlayer-contracts/src/contracts/libraries/EIP1271SignatureUtils.sol\":{\"keccak256\":\"0x5e8efc3becf04d44f69f2794e7cc77d6ae291602a376ed88e6276b5917e8bcec\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1248163ce62bdcf6a7d24a32c217b6330381f24393032369271e10a8e33f544c\",\"dweb:/ipfs/QmSRNEwkfa4QimC1KthYKskiDsFYc8RAc3pcbZUTTaPVgg\"]},\"lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x2a2b15842b11da4f2e6ea7016a4f94cfcfce18f2306c3bb3bb17b05831bd2c2a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9c4b5da7c287fcb1a95b2543ba9d33df8829420dce39c1d15e950f31af6035a8\",\"dweb:/ipfs/QmWM2LYsvnf69g4aLjYXUKE6gQ54Rd95PLXU3xTQ2xiBss\"]},\"lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol\":{\"keccak256\":\"0xc543d34b3e0fd116227fc5218286de6b30a9141f47df2e8cc17d857d2c0cb338\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://e78ca3c3c9f14ccde852ea41bc411726ea7770a1cf2ef18851e67bcdf7522cff\",\"dweb:/ipfs/QmWagcWsaNZqBZhdEHhZ4PcU9fx5wQnrbjoaaFvjEwgGHt\"]},\"lib/eigenlayer-middleware/src/RegistryCoordinator.sol\":{\"keccak256\":\"0x0c3f8a1dc9323c5ff4b50f23b278f06b751ab9f6707c14df1a5805f8737383ab\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://e4eb4beb943734bf3ac46a57e67f15377a47470be39f1d3d20bece1640ccc212\",\"dweb:/ipfs/QmUUw2Z8X3iMb4WGR3EC1hGnu3qVrjWqG6bnBSTbj8XZfX\"]},\"lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0x7f6aa0b9e3a7ddf3097932d073e49064326ae56303e4f40cf88c9e5a61968166\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://8728c82cb251eaf5b9d7001a41a754265fdb293c0630ddd0170b842582b5a059\",\"dweb:/ipfs/Qmc55Qf7qS5uABgENmc2G79DgwWyZ6aoB1EK4togbyCj4A\"]},\"lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x1fbcb7dd742b7fe004e44a4db03ef7160e3f1b9c6262c6b43484553d23893e70\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://33f42c3376409c9079a35e119ae5e122246cd4ae3adf9f6d9b0166aca8de86bb\",\"dweb:/ipfs/QmdA5JtYbCwVXWsX6t8WLgU5ejy2ZWoATb5BkF8ntn4K1x\"]},\"lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xaa994bdacd0d8718b4a9c018debece071e28a0906a3f041d53f1874eb882fad9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://0f175cfc849fb4ac38d1629e6f87c1d7b39bd5eb2bc62e6d40d57a9ec34a62db\",\"dweb:/ipfs/QmQhgQNjZaYYzEpk2X732ZKPfTbFGr8y8RLhDWizZSQLxi\"]},\"lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0xa7787ef89af43339a2447f252fed74746267ff2a4339823879d003c3a682f213\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://222bc9452f3af760ab477b1eb92e1e425b7027ad3ffe83d3325a92563026d0f8\",\"dweb:/ipfs/QmdQ2euKD4suZkfrKfbxaPe34xzNUpZ3459yiwJhSbLdKv\"]},\"lib/eigenlayer-middleware/src/interfaces/ISocketUpdater.sol\":{\"keccak256\":\"0x4fa9fc61ed778d76d3b0ac1974000d7cb613e413e363a2334dd08e0fcd013b01\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://fb67e3964e93cc9fca3ce91a7f6b67d7b1ea95a4e0568c05ad93185191ebaad0\",\"dweb:/ipfs/QmaJKFPh99zYjjpdNUS9ZbZPwamogr5FjaxuTKDJ63jwiU\"]},\"lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0xd12e4327dd3af7c467514eeb26f6330263d40ea5bcea4393f20dcb4505b6aa20\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9d2ed354473eb07fa145d4679b27919caff7d2d638c2a0ecffc0d8a5dc4d64b0\",\"dweb:/ipfs/QmagWvvrW1h9wHkDKrbaQGJ8H7mQQyZKQx1BSdTSCErk14\"]},\"lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xc7c5c9529ba56d63487a02cebd5ec41e4f7044ccac6a7bdbbd53492932f1e5e9\",\"license\":\"BUSL-1.1 AND MIT\",\"urls\":[\"bzz-raw://1d3ab347b2554544eee112846bf479fcd579ce573275c59d84676207ec36be06\",\"dweb:/ipfs/Qmd8e3z1JGuHKjLAdep4u8JDBsf3j6hNShQCt14eKufJYh\"]},\"lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x0a7f76850c3edb11080e20ef34f761813d8be3d1a0325ad64d175c01f3e3816e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6f697dff42c3e1c2eab7d2bc50aa96ad92abfeb1cabf8d17e541c76a82d40365\",\"dweb:/ipfs/QmPzhJNpwAYbd33oUwj1dq3KVDBMY8efUKryNa624Q2ewA\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e\",\"dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x84ac2d2f343df1e683da7a12bbcf70db542a7a7a0cea90a5d70fcb5e5d035481\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://73ae8e0c6f975052973265113d762629002ce33987b1933c2a378667e2816f2f\",\"dweb:/ipfs/QmQAootkVfoe4PLaYbT4Xob2dJRm3bZfbCffEHRbCYXNPF\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol\":{\"keccak256\":\"0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba\",\"dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.12+commit.f00d7308"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IServiceManager","name":"_serviceManager","type":"address"},{"internalType":"contract IStakeRegistry","name":"_stakeRegistry","type":"address"},{"internalType":"contract IBLSApkRegistry","name":"_blsApkRegistry","type":"address"},{"internalType":"contract IIndexRegistry","name":"_indexRegistry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"prevChurnApprover","type":"address","indexed":false},{"internalType":"address","name":"newChurnApprover","type":"address","indexed":false}],"type":"event","name":"ChurnApproverUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"prevEjector","type":"address","indexed":false},{"internalType":"address","name":"newEjector","type":"address","indexed":false}],"type":"event","name":"EjectorUpdated","anonymous":false},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bytes32","name":"operatorId","type":"bytes32","indexed":true}],"type":"event","name":"OperatorDeregistered","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bytes32","name":"operatorId","type":"bytes32","indexed":true}],"type":"event","name":"OperatorRegistered","anonymous":false},{"inputs":[{"internalType":"uint8","name":"quorumNumber","type":"uint8","indexed":true},{"internalType":"struct IRegistryCoordinator.OperatorSetParam","name":"operatorSetParams","type":"tuple","components":[{"internalType":"uint32","name":"maxOperatorCount","type":"uint32"},{"internalType":"uint16","name":"kickBIPsOfOperatorStake","type":"uint16"},{"internalType":"uint16","name":"kickBIPsOfTotalStake","type":"uint16"}],"indexed":false}],"type":"event","name":"OperatorSetParamsUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"operatorId","type":"bytes32","indexed":true},{"internalType":"string","name":"socket","type":"string","indexed":false}],"type":"event","name":"OperatorSocketUpdate","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"newPausedStatus","type":"uint256","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"contract IPauserRegistry","name":"pauserRegistry","type":"address","indexed":false},{"internalType":"contract IPauserRegistry","name":"newPauserRegistry","type":"address","indexed":false}],"type":"event","name":"PauserRegistrySet","anonymous":false},{"inputs":[{"internalType":"uint8","name":"quorumNumber","type":"uint8","indexed":true},{"internalType":"uint256","name":"blocknumber","type":"uint256","indexed":false}],"type":"event","name":"QuorumBlockNumberUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"newPausedStatus","type":"uint256","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"OPERATOR_CHURN_APPROVAL_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PUBKEY_REGISTRATION_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"blsApkRegistry","outputs":[{"internalType":"contract IBLSApkRegistry","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"registeringOperatorId","type":"bytes32"},{"internalType":"struct IRegistryCoordinator.OperatorKickParam[]","name":"operatorKickParams","type":"tuple[]","components":[{"internalType":"uint8","name":"quorumNumber","type":"uint8"},{"internalType":"address","name":"operator","type":"address"}]},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256","name":"expiry","type":"uint256"}],"stateMutability":"view","type":"function","name":"calculateOperatorChurnApprovalDigestHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"churnApprover","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct IRegistryCoordinator.OperatorSetParam","name":"operatorSetParams","type":"tuple","components":[{"internalType":"uint32","name":"maxOperatorCount","type":"uint32"},{"internalType":"uint16","name":"kickBIPsOfOperatorStake","type":"uint16"},{"internalType":"uint16","name":"kickBIPsOfTotalStake","type":"uint16"}]},{"internalType":"uint96","name":"minimumStake","type":"uint96"},{"internalType":"struct IStakeRegistry.StrategyParams[]","name":"strategyParams","type":"tuple[]","components":[{"internalType":"contract IStrategy","name":"strategy","type":"address"},{"internalType":"uint96","name":"multiplier","type":"uint96"}]}],"stateMutability":"nonpayable","type":"function","name":"createQuorum"},{"inputs":[{"internalType":"bytes","name":"quorumNumbers","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"deregisterOperator"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bytes","name":"quorumNumbers","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"ejectOperator"},{"inputs":[],"stateMutability":"view","type":"function","name":"ejector","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"operatorId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getCurrentQuorumBitmap","outputs":[{"internalType":"uint192","name":"","type":"uint192"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperator","outputs":[{"internalType":"struct IRegistryCoordinator.OperatorInfo","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"operatorId","type":"bytes32"},{"internalType":"enum IRegistryCoordinator.OperatorStatus","name":"status","type":"uint8"}]}]},{"inputs":[{"internalType":"bytes32","name":"operatorId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getOperatorFromId","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint8","name":"quorumNumber","type":"uint8"}],"stateMutability":"view","type":"function","name":"getOperatorSetParams","outputs":[{"internalType":"struct IRegistryCoordinator.OperatorSetParam","name":"","type":"tuple","components":[{"internalType":"uint32","name":"maxOperatorCount","type":"uint32"},{"internalType":"uint16","name":"kickBIPsOfOperatorStake","type":"uint16"},{"internalType":"uint16","name":"kickBIPsOfTotalStake","type":"uint16"}]}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorStatus","outputs":[{"internalType":"enum IRegistryCoordinator.OperatorStatus","name":"","type":"uint8"}]},{"inputs":[{"internalType":"bytes32","name":"operatorId","type":"bytes32"},{"internalType":"uint32","name":"blockNumber","type":"uint32"},{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"getQuorumBitmapAtBlockNumberByIndex","outputs":[{"internalType":"uint192","name":"","type":"uint192"}]},{"inputs":[{"internalType":"bytes32","name":"operatorId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getQuorumBitmapHistoryLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint32","name":"blockNumber","type":"uint32"},{"internalType":"bytes32[]","name":"operatorIds","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"getQuorumBitmapIndicesAtBlockNumber","outputs":[{"internalType":"uint32[]","name":"","type":"uint32[]"}]},{"inputs":[{"internalType":"bytes32","name":"operatorId","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"getQuorumBitmapUpdateByIndex","outputs":[{"internalType":"struct IRegistryCoordinator.QuorumBitmapUpdate","name":"","type":"tuple","components":[{"internalType":"uint32","name":"updateBlockNumber","type":"uint32"},{"internalType":"uint32","name":"nextUpdateBlockNumber","type":"uint32"},{"internalType":"uint192","name":"quorumBitmap","type":"uint192"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"indexRegistry","outputs":[{"internalType":"contract IIndexRegistry","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_initialOwner","type":"address"},{"internalType":"address","name":"_churnApprover","type":"address"},{"internalType":"address","name":"_ejector","type":"address"},{"internalType":"contract IPauserRegistry","name":"_pauserRegistry","type":"address"},{"internalType":"uint256","name":"_initialPausedStatus","type":"uint256"},{"internalType":"struct IRegistryCoordinator.OperatorSetParam[]","name":"_operatorSetParams","type":"tuple[]","components":[{"internalType":"uint32","name":"maxOperatorCount","type":"uint32"},{"internalType":"uint16","name":"kickBIPsOfOperatorStake","type":"uint16"},{"internalType":"uint16","name":"kickBIPsOfTotalStake","type":"uint16"}]},{"internalType":"uint96[]","name":"_minimumStakes","type":"uint96[]"},{"internalType":"struct IStakeRegistry.StrategyParams[][]","name":"_strategyParams","type":"tuple[][]","components":[{"internalType":"contract IStrategy","name":"strategy","type":"address"},{"internalType":"uint96","name":"multiplier","type":"uint96"}]}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isChurnApproverSaltUsed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"numRegistries","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"newPausedStatus","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"pause"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pauseAll"},{"inputs":[{"internalType":"uint8","name":"index","type":"uint8"}],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pauserRegistry","outputs":[{"internalType":"contract IPauserRegistry","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"pubkeyRegistrationMessageHash","outputs":[{"internalType":"struct BN254.G1Point","name":"","type":"tuple","components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"quorumCount","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function","name":"quorumUpdateBlockNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes","name":"quorumNumbers","type":"bytes"},{"internalType":"string","name":"socket","type":"string"},{"internalType":"struct IBLSApkRegistry.PubkeyRegistrationParams","name":"params","type":"tuple","components":[{"internalType":"struct BN254.G1Point","name":"pubkeyRegistrationSignature","type":"tuple","components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}]},{"internalType":"struct BN254.G1Point","name":"pubkeyG1","type":"tuple","components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}]},{"internalType":"struct BN254.G2Point","name":"pubkeyG2","type":"tuple","components":[{"internalType":"uint256[2]","name":"X","type":"uint256[2]"},{"internalType":"uint256[2]","name":"Y","type":"uint256[2]"}]}]},{"internalType":"struct ISignatureUtils.SignatureWithSaltAndExpiry","name":"operatorSignature","type":"tuple","components":[{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256","name":"expiry","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"registerOperator"},{"inputs":[{"internalType":"bytes","name":"quorumNumbers","type":"bytes"},{"internalType":"string","name":"socket","type":"string"},{"internalType":"struct IBLSApkRegistry.PubkeyRegistrationParams","name":"params","type":"tuple","components":[{"internalType":"struct BN254.G1Point","name":"pubkeyRegistrationSignature","type":"tuple","components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}]},{"internalType":"struct BN254.G1Point","name":"pubkeyG1","type":"tuple","components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}]},{"internalType":"struct BN254.G2Point","name":"pubkeyG2","type":"tuple","components":[{"internalType":"uint256[2]","name":"X","type":"uint256[2]"},{"internalType":"uint256[2]","name":"Y","type":"uint256[2]"}]}]},{"internalType":"struct IRegistryCoordinator.OperatorKickParam[]","name":"operatorKickParams","type":"tuple[]","components":[{"internalType":"uint8","name":"quorumNumber","type":"uint8"},{"internalType":"address","name":"operator","type":"address"}]},{"internalType":"struct ISignatureUtils.SignatureWithSaltAndExpiry","name":"churnApproverSignature","type":"tuple","components":[{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256","name":"expiry","type":"uint256"}]},{"internalType":"struct ISignatureUtils.SignatureWithSaltAndExpiry","name":"operatorSignature","type":"tuple","components":[{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256","name":"expiry","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"registerOperatorWithChurn"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"registries","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"serviceManager","outputs":[{"internalType":"contract IServiceManager","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_churnApprover","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setChurnApprover"},{"inputs":[{"internalType":"address","name":"_ejector","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setEjector"},{"inputs":[{"internalType":"uint8","name":"quorumNumber","type":"uint8"},{"internalType":"struct IRegistryCoordinator.OperatorSetParam","name":"operatorSetParams","type":"tuple","components":[{"internalType":"uint32","name":"maxOperatorCount","type":"uint32"},{"internalType":"uint16","name":"kickBIPsOfOperatorStake","type":"uint16"},{"internalType":"uint16","name":"kickBIPsOfTotalStake","type":"uint16"}]}],"stateMutability":"nonpayable","type":"function","name":"setOperatorSetParams"},{"inputs":[{"internalType":"contract IPauserRegistry","name":"newPauserRegistry","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setPauserRegistry"},{"inputs":[],"stateMutability":"view","type":"function","name":"stakeRegistry","outputs":[{"internalType":"contract IStakeRegistry","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"uint256","name":"newPausedStatus","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"unpause"},{"inputs":[{"internalType":"address[]","name":"operators","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"updateOperators"},{"inputs":[{"internalType":"address[][]","name":"operatorsPerQuorum","type":"address[][]"},{"internalType":"bytes","name":"quorumNumbers","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"updateOperatorsForQuorum"},{"inputs":[{"internalType":"string","name":"socket","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"updateSocket"}],"devdoc":{"kind":"dev","methods":{"calculateOperatorChurnApprovalDigestHash(bytes32,(uint8,address)[],bytes32,uint256)":{"params":{"expiry":"The desired expiry time of the churnApprover's signature","operatorKickParams":"The parameters needed to kick the operator from the quorums that have reached their caps","registeringOperatorId":"The is of the registering operator ","salt":"The salt to use for the churnApprover's signature"}},"deregisterOperator(bytes)":{"params":{"quorumNumbers":"is an ordered byte array containing the quorum numbers being deregistered from"}},"ejectOperator(address,bytes)":{"params":{"operator":"is the operator to eject","quorumNumbers":"are the quorum numbers to eject the operator from"}},"getQuorumBitmapAtBlockNumberByIndex(bytes32,uint32,uint256)":{"details":"reverts if `index` is incorrect "},"owner()":{"details":"need to override function here since its defined in both these contracts"},"pause(uint256)":{"details":"This function can only pause functionality, and thus cannot 'unflip' any bit in `_paused` from 1 to 0.","params":{"newPausedStatus":"represents the new value for `_paused` to take, which means it may flip several bits at once."}},"pubkeyRegistrationMessageHash(address)":{"params":{"operator":"is the address of the operator registering their BLS public key"}},"registerOperator(bytes,string,((uint256,uint256),(uint256,uint256),(uint256[2],uint256[2])),(bytes,bytes32,uint256))":{"details":"the `params` input param is ignored if the caller has previously registered a public key","params":{"operatorSignature":"is the signature of the operator used by the AVS to register the operator in the delegation manager","params":"contains the G1 & G2 public keys of the operator, and a signature proving their ownership","quorumNumbers":"is an ordered byte array containing the quorum numbers being registered for","socket":"is the socket of the operator"}},"registerOperatorWithChurn(bytes,string,((uint256,uint256),(uint256,uint256),(uint256[2],uint256[2])),(uint8,address)[],(bytes,bytes32,uint256),(bytes,bytes32,uint256))":{"details":"the `params` input param is ignored if the caller has previously registered a public key","params":{"churnApproverSignature":"is the signature of the churnApprover on the operator kick params","operatorKickParams":"are used to determine which operator is removed to maintain quorum capacity as the operator registers for quorums.","operatorSignature":"is the signature of the operator used by the AVS to register the operator in the delegation manager","params":"contains the G1 & G2 public keys of the operator, and a signature proving their ownership","quorumNumbers":"is an ordered byte array containing the quorum numbers being registered for"}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"setChurnApprover(address)":{"details":"only callable by the owner","params":{"_churnApprover":"is the address of the churnApprover"}},"setEjector(address)":{"details":"only callable by the owner","params":{"_ejector":"is the address of the ejector"}},"setOperatorSetParams(uint8,(uint32,uint16,uint16))":{"details":"only callable by the owner","params":{"operatorSetParams":"is the parameters of the operator set for the `quorumNumber`","quorumNumber":"is the quorum number to set the maximum number of operators for"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"unpause(uint256)":{"details":"This function can only unpause functionality, and thus cannot 'flip' any bit in `_paused` from 0 to 1.","params":{"newPausedStatus":"represents the new value for `_paused` to take, which means it may flip several bits at once."}},"updateOperatorsForQuorum(address[][],bytes)":{"details":"This method is used to update the stakes of all operators in a quorum at once, rather than individually. Performs sanitization checks on the input array lengths, quorumNumbers existing, and that quorumNumbers are ordered. Function must also not be paused by the PAUSED_UPDATE_OPERATOR flag.","params":{"operatorsPerQuorum":"is an array of arrays of operators to update for each quorum. Note that each nested array of operators must be sorted in ascending address order to ensure that all operators in the quorum are updated","quorumNumbers":"is an array of quorum numbers to update"}},"updateSocket(string)":{"params":{"socket":"is the new socket of the operator"}}},"version":1},"userdoc":{"kind":"user","methods":{"OPERATOR_CHURN_APPROVAL_TYPEHASH()":{"notice":"The EIP-712 typehash for the `DelegationApproval` struct used by the contract"},"PUBKEY_REGISTRATION_TYPEHASH()":{"notice":"The EIP-712 typehash used for registering BLS public keys"},"blsApkRegistry()":{"notice":"the BLS Aggregate Pubkey Registry contract that will keep track of operators' aggregate BLS public keys per quorum"},"calculateOperatorChurnApprovalDigestHash(bytes32,(uint8,address)[],bytes32,uint256)":{"notice":"Public function for the the churnApprover signature hash calculation when operators are being kicked from quorums"},"churnApprover()":{"notice":"the address of the entity allowed to sign off on operators getting kicked out of the AVS during registration"},"createQuorum((uint32,uint16,uint16),uint96,(address,uint96)[])":{"notice":"Creates a quorum and initializes it in each registry contract"},"deregisterOperator(bytes)":{"notice":"Deregisters the caller from one or more quorums"},"ejectOperator(address,bytes)":{"notice":"Ejects the provided operator from the provided quorums from the AVS"},"ejector()":{"notice":"the address of the entity allowed to eject operators from the AVS"},"getCurrentQuorumBitmap(bytes32)":{"notice":"Returns the current quorum bitmap for the given `operatorId` or 0 if the operator is not registered for any quorum"},"getOperator(address)":{"notice":"Returns the operator struct for the given `operator`"},"getOperatorFromId(bytes32)":{"notice":"Returns the operator address for the given `operatorId`"},"getOperatorId(address)":{"notice":"Returns the operatorId for the given `operator`"},"getOperatorSetParams(uint8)":{"notice":"Returns the operator set params for the given `quorumNumber`"},"getOperatorStatus(address)":{"notice":"Returns the status for the given `operator`"},"getQuorumBitmapAtBlockNumberByIndex(bytes32,uint32,uint256)":{"notice":"Returns the quorum bitmap for the given `operatorId` at the given `blockNumber` via the `index`"},"getQuorumBitmapHistoryLength(bytes32)":{"notice":"Returns the length of the quorum bitmap history for the given `operatorId`"},"getQuorumBitmapIndicesAtBlockNumber(uint32,bytes32[])":{"notice":"Returns the indices of the quorumBitmaps for the provided `operatorIds` at the given `blockNumber`"},"getQuorumBitmapUpdateByIndex(bytes32,uint256)":{"notice":"Returns the `index`th entry in the operator with `operatorId`'s bitmap history"},"indexRegistry()":{"notice":"the Index Registry contract that will keep track of operators' indexes"},"isChurnApproverSaltUsed(bytes32)":{"notice":"whether the salt has been used for an operator churn approval"},"numRegistries()":{"notice":"Returns the number of registries"},"pause(uint256)":{"notice":"This function is used to pause an EigenLayer contract's functionality. It is permissioned to the `pauser` address, which is expected to be a low threshold multisig."},"pauseAll()":{"notice":"Alias for `pause(type(uint256).max)`."},"paused()":{"notice":"Returns the current paused status as a uint256."},"paused(uint8)":{"notice":"Returns 'true' if the `indexed`th bit of `_paused` is 1, and 'false' otherwise"},"pauserRegistry()":{"notice":"Address of the `PauserRegistry` contract that this contract defers to for determining access control (for pausing)."},"pubkeyRegistrationMessageHash(address)":{"notice":"Returns the message hash that an operator must sign to register their BLS public key."},"quorumCount()":{"notice":"the current number of quorums supported by the registry coordinator"},"quorumUpdateBlockNumber(uint8)":{"notice":"mapping from quorum number to the latest block that all quorums were updated all at once"},"registerOperator(bytes,string,((uint256,uint256),(uint256,uint256),(uint256[2],uint256[2])),(bytes,bytes32,uint256))":{"notice":"Registers msg.sender as an operator for one or more quorums. If any quorum reaches its maximum operator capacity, this method will fail."},"registerOperatorWithChurn(bytes,string,((uint256,uint256),(uint256,uint256),(uint256[2],uint256[2])),(uint8,address)[],(bytes,bytes32,uint256),(bytes,bytes32,uint256))":{"notice":"Registers msg.sender as an operator for one or more quorums. If any quorum reaches its maximum operator capacity, `operatorKickParams` is used to replace an old operator with the new one."},"registries(uint256)":{"notice":"the dynamic-length array of the registries this coordinator is coordinating"},"serviceManager()":{"notice":"the ServiceManager for this AVS, which forwards calls onto EigenLayer's core contracts"},"setChurnApprover(address)":{"notice":"Sets the churnApprover"},"setEjector(address)":{"notice":"Sets the ejector"},"setOperatorSetParams(uint8,(uint32,uint16,uint16))":{"notice":"Updates a quorum's OperatorSetParams"},"setPauserRegistry(address)":{"notice":"Allows the unpauser to set a new pauser registry"},"stakeRegistry()":{"notice":"the Stake Registry contract that will keep track of operators' stakes"},"unpause(uint256)":{"notice":"This function is used to unpause an EigenLayer contract's functionality. It is permissioned to the `unpauser` address, which is expected to be a high threshold multisig or governance contract."},"updateOperators(address[])":{"notice":"Updates the stakes of one or more operators in the StakeRegistry, for each quorum the operator is registered for. If any operator no longer meets the minimum stake required to remain in the quorum, they are deregistered."},"updateOperatorsForQuorum(address[][],bytes)":{"notice":"Updates the stakes of all operators for each of the specified quorums in the StakeRegistry. Each quorum also has their quorumUpdateBlockNumber updated. which is meant to keep track of when operators were last all updated at once."},"updateSocket(string)":{"notice":"Updates the socket of the msg.sender given they are a registered operator"}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/openzeppelin-contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","eigenlayer-contracts/=lib/eigenlayer-contracts/","eigenlayer-core/=lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/eigenlayer-contracts/script/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/eigenlayer-middleware/src/RegistryCoordinator.sol":"RegistryCoordinator"},"libraries":{}},"sources":{"lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xd3f57f3e95226d95a41399385a5b7512df7a2c6e8b3bf84d8f1e1d9d3a8acad1","urls":["bzz-raw://1750f88e93c0f63c05d57d8f9770adaeec23209df8c8a1c004df4244750bbae9","dweb:/ipfs/QmQYCHgJLpGiDauL2Z3WF5ofansgcngKFV3AeeDo2EsJDb"],"license":"BUSL-1.1"},"lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xda0ef432f8d186276739e8f8547712c9978c172de48ca0afc7935d0e84cabb03","urls":["bzz-raw://97de6d182477a30c298880e0896b639ada35637a6acc4e3fadf89bf68ae83096","dweb:/ipfs/QmUPzdhiKXFuFZaFvKFMrYMeF93N7wiKyigELVjRA1WsqA"],"license":"BUSL-1.1"},"lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x3ac96c08e5ac35a015a8b943fe4509370f73cfb420375efb3808fe3c13840679","urls":["bzz-raw://e76b0c1d96925dc54b11365ceb8178a1de0b2bdb1260da0f9942048d35892bc4","dweb:/ipfs/QmSyew5ejxyEXsbq5t6pmhmBZmojQcesgNXgTDJmJMg1TU"],"license":"BUSL-1.1"},"lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x0d17c9b2b6cb6a33685ee6fc2f4c6e1b6ac59fd7555b42591575abdd65bf6395","urls":["bzz-raw://14fdbaa196e46791b75e8fbb1862bc02ae76cfbd956cb8967dc18f0f88182ad1","dweb:/ipfs/QmS3p4xrqgVABzAeG3ssinhKXEm6bCXR24i14VJtGJDv46"],"license":"BUSL-1.1"},"lib/eigenlayer-contracts/src/contracts/libraries/EIP1271SignatureUtils.sol":{"keccak256":"0x5e8efc3becf04d44f69f2794e7cc77d6ae291602a376ed88e6276b5917e8bcec","urls":["bzz-raw://1248163ce62bdcf6a7d24a32c217b6330381f24393032369271e10a8e33f544c","dweb:/ipfs/QmSRNEwkfa4QimC1KthYKskiDsFYc8RAc3pcbZUTTaPVgg"],"license":"BUSL-1.1"},"lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x2a2b15842b11da4f2e6ea7016a4f94cfcfce18f2306c3bb3bb17b05831bd2c2a","urls":["bzz-raw://9c4b5da7c287fcb1a95b2543ba9d33df8829420dce39c1d15e950f31af6035a8","dweb:/ipfs/QmWM2LYsvnf69g4aLjYXUKE6gQ54Rd95PLXU3xTQ2xiBss"],"license":"BUSL-1.1"},"lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol":{"keccak256":"0xc543d34b3e0fd116227fc5218286de6b30a9141f47df2e8cc17d857d2c0cb338","urls":["bzz-raw://e78ca3c3c9f14ccde852ea41bc411726ea7770a1cf2ef18851e67bcdf7522cff","dweb:/ipfs/QmWagcWsaNZqBZhdEHhZ4PcU9fx5wQnrbjoaaFvjEwgGHt"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/RegistryCoordinator.sol":{"keccak256":"0x0c3f8a1dc9323c5ff4b50f23b278f06b751ab9f6707c14df1a5805f8737383ab","urls":["bzz-raw://e4eb4beb943734bf3ac46a57e67f15377a47470be39f1d3d20bece1640ccc212","dweb:/ipfs/QmUUw2Z8X3iMb4WGR3EC1hGnu3qVrjWqG6bnBSTbj8XZfX"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0x7f6aa0b9e3a7ddf3097932d073e49064326ae56303e4f40cf88c9e5a61968166","urls":["bzz-raw://8728c82cb251eaf5b9d7001a41a754265fdb293c0630ddd0170b842582b5a059","dweb:/ipfs/Qmc55Qf7qS5uABgENmc2G79DgwWyZ6aoB1EK4togbyCj4A"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x1fbcb7dd742b7fe004e44a4db03ef7160e3f1b9c6262c6b43484553d23893e70","urls":["bzz-raw://33f42c3376409c9079a35e119ae5e122246cd4ae3adf9f6d9b0166aca8de86bb","dweb:/ipfs/QmdA5JtYbCwVXWsX6t8WLgU5ejy2ZWoATb5BkF8ntn4K1x"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xaa994bdacd0d8718b4a9c018debece071e28a0906a3f041d53f1874eb882fad9","urls":["bzz-raw://0f175cfc849fb4ac38d1629e6f87c1d7b39bd5eb2bc62e6d40d57a9ec34a62db","dweb:/ipfs/QmQhgQNjZaYYzEpk2X732ZKPfTbFGr8y8RLhDWizZSQLxi"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0xa7787ef89af43339a2447f252fed74746267ff2a4339823879d003c3a682f213","urls":["bzz-raw://222bc9452f3af760ab477b1eb92e1e425b7027ad3ffe83d3325a92563026d0f8","dweb:/ipfs/QmdQ2euKD4suZkfrKfbxaPe34xzNUpZ3459yiwJhSbLdKv"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/ISocketUpdater.sol":{"keccak256":"0x4fa9fc61ed778d76d3b0ac1974000d7cb613e413e363a2334dd08e0fcd013b01","urls":["bzz-raw://fb67e3964e93cc9fca3ce91a7f6b67d7b1ea95a4e0568c05ad93185191ebaad0","dweb:/ipfs/QmaJKFPh99zYjjpdNUS9ZbZPwamogr5FjaxuTKDJ63jwiU"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0xd12e4327dd3af7c467514eeb26f6330263d40ea5bcea4393f20dcb4505b6aa20","urls":["bzz-raw://9d2ed354473eb07fa145d4679b27919caff7d2d638c2a0ecffc0d8a5dc4d64b0","dweb:/ipfs/QmagWvvrW1h9wHkDKrbaQGJ8H7mQQyZKQx1BSdTSCErk14"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xc7c5c9529ba56d63487a02cebd5ec41e4f7044ccac6a7bdbbd53492932f1e5e9","urls":["bzz-raw://1d3ab347b2554544eee112846bf479fcd579ce573275c59d84676207ec36be06","dweb:/ipfs/Qmd8e3z1JGuHKjLAdep4u8JDBsf3j6hNShQCt14eKufJYh"],"license":"BUSL-1.1 AND MIT"},"lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x0a7f76850c3edb11080e20ef34f761813d8be3d1a0325ad64d175c01f3e3816e","urls":["bzz-raw://6f697dff42c3e1c2eab7d2bc50aa96ad92abfeb1cabf8d17e541c76a82d40365","dweb:/ipfs/QmPzhJNpwAYbd33oUwj1dq3KVDBMY8efUKryNa624Q2ewA"],"license":"BUSL-1.1"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544","urls":["bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e","dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3","urls":["bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638","dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x84ac2d2f343df1e683da7a12bbcf70db542a7a7a0cea90a5d70fcb5e5d035481","urls":["bzz-raw://73ae8e0c6f975052973265113d762629002ce33987b1933c2a378667e2816f2f","dweb:/ipfs/QmQAootkVfoe4PLaYbT4Xob2dJRm3bZfbCffEHRbCYXNPF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol":{"keccak256":"0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7","urls":["bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba","dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/eigenlayer-middleware/src/RegistryCoordinator.sol","id":9740,"exportedSymbols":{"BN254":[13824],"BitmapUtils":[14393],"EIP1271SignatureUtils":[2920],"EIP712":[49900],"IBLSApkRegistry":[12091],"IIndexRegistry":[12290],"IPauserRegistry":[1543],"IRegistryCoordinator":[12546],"IServiceManager":[12591],"ISignatureUtils":[1559],"ISocketUpdater":[12607],"IStakeRegistry":[12942],"Initializable":[47159],"OwnableUpgradeable":[47008],"Pausable":[4174],"RegistryCoordinator":[9739]},"nodeType":"SourceUnit","src":"37:40783:29","nodes":[{"id":7695,"nodeType":"PragmaDirective","src":"37:24:29","nodes":[],"literals":["solidity","=","0.8",".12"]},{"id":7697,"nodeType":"ImportDirective","src":"63:98:29","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin-upgrades/contracts/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":9740,"sourceUnit":47009,"symbolAliases":[{"foreign":{"id":7696,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47008,"src":"71:18:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_OwnableUpgradeable_$47008_$","typeString":"type(contract OwnableUpgradeable)"}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7699,"nodeType":"ImportDirective","src":"162:93:29","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","file":"@openzeppelin-upgrades/contracts/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":9740,"sourceUnit":47160,"symbolAliases":[{"foreign":{"id":7698,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47159,"src":"170:13:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Initializable_$47159_$","typeString":"type(contract Initializable)"}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7701,"nodeType":"ImportDirective","src":"256:83:29","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol","file":"@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol","nameLocation":"-1:-1:-1","scope":9740,"sourceUnit":49901,"symbolAliases":[{"foreign":{"id":7700,"name":"EIP712","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49900,"src":"264:6:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EIP712_$49900_$","typeString":"type(contract EIP712)"}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7703,"nodeType":"ImportDirective","src":"341:109:29","nodes":[],"absolutePath":"lib/eigenlayer-contracts/src/contracts/libraries/EIP1271SignatureUtils.sol","file":"eigenlayer-contracts/src/contracts/libraries/EIP1271SignatureUtils.sol","nameLocation":"-1:-1:-1","scope":9740,"sourceUnit":2921,"symbolAliases":[{"foreign":{"id":7702,"name":"EIP1271SignatureUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2920,"src":"349:21:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EIP1271SignatureUtils_$2920_$","typeString":"type(library EIP1271SignatureUtils)"}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7705,"nodeType":"ImportDirective","src":"451:98:29","nodes":[],"absolutePath":"lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol","file":"eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol","nameLocation":"-1:-1:-1","scope":9740,"sourceUnit":1544,"symbolAliases":[{"foreign":{"id":7704,"name":"IPauserRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1543,"src":"459:15:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPauserRegistry_$1543_$","typeString":"type(contract IPauserRegistry)"}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7707,"nodeType":"ImportDirective","src":"550:85:29","nodes":[],"absolutePath":"lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol","file":"eigenlayer-contracts/src/contracts/permissions/Pausable.sol","nameLocation":"-1:-1:-1","scope":9740,"sourceUnit":4175,"symbolAliases":[{"foreign":{"id":7706,"name":"Pausable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4174,"src":"558:8:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Pausable_$4174_$","typeString":"type(contract Pausable)"}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7709,"nodeType":"ImportDirective","src":"637:75:29","nodes":[],"absolutePath":"lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol","file":"./interfaces/IRegistryCoordinator.sol","nameLocation":"-1:-1:-1","scope":9740,"sourceUnit":12547,"symbolAliases":[{"foreign":{"id":7708,"name":"IRegistryCoordinator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12546,"src":"645:20:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistryCoordinator_$12546_$","typeString":"type(contract IRegistryCoordinator)"}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7711,"nodeType":"ImportDirective","src":"713:98:29","nodes":[],"absolutePath":"lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol","file":"eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol","nameLocation":"-1:-1:-1","scope":9740,"sourceUnit":1560,"symbolAliases":[{"foreign":{"id":7710,"name":"ISignatureUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1559,"src":"721:15:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISignatureUtils_$1559_$","typeString":"type(contract ISignatureUtils)"}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7713,"nodeType":"ImportDirective","src":"812:65:29","nodes":[],"absolutePath":"lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol","file":"./interfaces/IBLSApkRegistry.sol","nameLocation":"-1:-1:-1","scope":9740,"sourceUnit":12092,"symbolAliases":[{"foreign":{"id":7712,"name":"IBLSApkRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12091,"src":"820:15:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBLSApkRegistry_$12091_$","typeString":"type(contract IBLSApkRegistry)"}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7715,"nodeType":"ImportDirective","src":"878:63:29","nodes":[],"absolutePath":"lib/eigenlayer-middleware/src/interfaces/ISocketUpdater.sol","file":"./interfaces/ISocketUpdater.sol","nameLocation":"-1:-1:-1","scope":9740,"sourceUnit":12608,"symbolAliases":[{"foreign":{"id":7714,"name":"ISocketUpdater","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12607,"src":"886:14:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISocketUpdater_$12607_$","typeString":"type(contract ISocketUpdater)"}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7717,"nodeType":"ImportDirective","src":"942:63:29","nodes":[],"absolutePath":"lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol","file":"./interfaces/IStakeRegistry.sol","nameLocation":"-1:-1:-1","scope":9740,"sourceUnit":12943,"symbolAliases":[{"foreign":{"id":7716,"name":"IStakeRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12942,"src":"950:14:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStakeRegistry_$12942_$","typeString":"type(contract IStakeRegistry)"}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7719,"nodeType":"ImportDirective","src":"1006:63:29","nodes":[],"absolutePath":"lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol","file":"./interfaces/IIndexRegistry.sol","nameLocation":"-1:-1:-1","scope":9740,"sourceUnit":12291,"symbolAliases":[{"foreign":{"id":7718,"name":"IIndexRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12290,"src":"1014:14:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IIndexRegistry_$12290_$","typeString":"type(contract IIndexRegistry)"}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7721,"nodeType":"ImportDirective","src":"1070:65:29","nodes":[],"absolutePath":"lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol","file":"./interfaces/IServiceManager.sol","nameLocation":"-1:-1:-1","scope":9740,"sourceUnit":12592,"symbolAliases":[{"foreign":{"id":7720,"name":"IServiceManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12591,"src":"1078:15:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IServiceManager_$12591_$","typeString":"type(contract IServiceManager)"}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7723,"nodeType":"ImportDirective","src":"1137:56:29","nodes":[],"absolutePath":"lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol","file":"./libraries/BitmapUtils.sol","nameLocation":"-1:-1:-1","scope":9740,"sourceUnit":14394,"symbolAliases":[{"foreign":{"id":7722,"name":"BitmapUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14393,"src":"1145:11:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BitmapUtils_$14393_$","typeString":"type(library BitmapUtils)"}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7725,"nodeType":"ImportDirective","src":"1194:44:29","nodes":[],"absolutePath":"lib/eigenlayer-middleware/src/libraries/BN254.sol","file":"./libraries/BN254.sol","nameLocation":"-1:-1:-1","scope":9740,"sourceUnit":13825,"symbolAliases":[{"foreign":{"id":7724,"name":"BN254","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13824,"src":"1202:5:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BN254_$13824_$","typeString":"type(library BN254)"}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":9739,"nodeType":"ContractDefinition","src":"1625:39194:29","nodes":[{"id":7742,"nodeType":"UsingForDirective","src":"1803:24:29","nodes":[],"libraryName":{"id":7741,"name":"BitmapUtils","nodeType":"IdentifierPath","referencedDeclaration":14393,"src":"1809:11:29"}},{"id":7746,"nodeType":"UsingForDirective","src":"1832:30:29","nodes":[],"libraryName":{"id":7743,"name":"BN254","nodeType":"IdentifierPath","referencedDeclaration":13824,"src":"1838:5:29"},"typeName":{"id":7745,"nodeType":"UserDefinedTypeName","pathNode":{"id":7744,"name":"BN254.G1Point","nodeType":"IdentifierPath","referencedDeclaration":12956,"src":"1848:13:29"},"referencedDeclaration":12956,"src":"1848:13:29","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$12956_storage_ptr","typeString":"struct BN254.G1Point"}}},{"id":7752,"nodeType":"VariableDeclaration","src":"1962:234:29","nodes":[],"constant":true,"documentation":{"id":7747,"nodeType":"StructuredDocumentation","src":"1868:89:29","text":"@notice The EIP-712 typehash for the `DelegationApproval` struct used by the contract"},"functionSelector":"ca0de882","mutability":"constant","name":"OPERATOR_CHURN_APPROVAL_TYPEHASH","nameLocation":"1986:32:29","scope":9739,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7748,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1962:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"4f70657261746f72436875726e417070726f76616c2862797465733332207265676973746572696e674f70657261746f7249642c4f70657261746f724b69636b506172616d5b5d206f70657261746f724b69636b506172616d73294f70657261746f724b69636b506172616d2861646472657373206f70657261746f722c627974657333325b5d206f70657261746f72496473546f5377617029","id":7750,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2039:156:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_f843b3116d574f43e69f8dda5d93ebf11dccc4a465983f9453058005cd6b34a0","typeString":"literal_string \"OperatorChurnApproval(bytes32 registeringOperatorId,OperatorKickParam[] operatorKickParams)OperatorKickParam(address operator,bytes32[] operatorIdsToSwap)\""},"value":"OperatorChurnApproval(bytes32 registeringOperatorId,OperatorKickParam[] operatorKickParams)OperatorKickParam(address operator,bytes32[] operatorIdsToSwap)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f843b3116d574f43e69f8dda5d93ebf11dccc4a465983f9453058005cd6b34a0","typeString":"literal_string \"OperatorChurnApproval(bytes32 registeringOperatorId,OperatorKickParam[] operatorKickParams)OperatorKickParam(address operator,bytes32[] operatorIdsToSwap)\""}],"id":7749,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2029:9:29","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7751,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2029:167:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":7758,"nodeType":"VariableDeclaration","src":"2276:109:29","nodes":[],"constant":true,"documentation":{"id":7753,"nodeType":"StructuredDocumentation","src":"2202:69:29","text":"@notice The EIP-712 typehash used for registering BLS public keys"},"functionSelector":"9feab859","mutability":"constant","name":"PUBKEY_REGISTRATION_TYPEHASH","nameLocation":"2300:28:29","scope":9739,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7754,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2276:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"424e3235345075626b6579526567697374726174696f6e2861646472657373206f70657261746f7229","id":7756,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2341:43:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de6","typeString":"literal_string \"BN254PubkeyRegistration(address operator)\""},"value":"BN254PubkeyRegistration(address operator)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de6","typeString":"literal_string \"BN254PubkeyRegistration(address operator)\""}],"id":7755,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2331:9:29","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2331:54:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":7766,"nodeType":"VariableDeclaration","src":"2444:63:29","nodes":[],"constant":true,"documentation":{"id":7759,"nodeType":"StructuredDocumentation","src":"2391:48:29","text":"@notice The maximum value of a quorum bitmap"},"mutability":"constant","name":"MAX_QUORUM_BITMAP","nameLocation":"2470:17:29","scope":9739,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7760,"name":"uint256","nodeType":"ElementaryTypeName","src":"2444:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"expression":{"arguments":[{"id":7763,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2495:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_uint192_$","typeString":"type(uint192)"},"typeName":{"id":7762,"name":"uint192","nodeType":"ElementaryTypeName","src":"2495:7:29","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint192_$","typeString":"type(uint192)"}],"id":7761,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2490:4:29","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2490:13:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint192","typeString":"type(uint192)"}},"id":7765,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"2490:17:29","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"visibility":"internal"},{"id":7770,"nodeType":"VariableDeclaration","src":"2557:49:29","nodes":[],"constant":true,"documentation":{"id":7767,"nodeType":"StructuredDocumentation","src":"2513:39:29","text":"@notice The basis point denominator"},"mutability":"constant","name":"BIPS_DENOMINATOR","nameLocation":"2582:16:29","scope":9739,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":7768,"name":"uint16","nodeType":"ElementaryTypeName","src":"2557:6:29","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"3130303030","id":7769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2601:5:29","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"value":"10000"},"visibility":"internal"},{"id":7774,"nodeType":"VariableDeclaration","src":"2677:52:29","nodes":[],"constant":true,"documentation":{"id":7771,"nodeType":"StructuredDocumentation","src":"2612:60:29","text":"@notice Index for flag that pauses operator registration"},"mutability":"constant","name":"PAUSED_REGISTER_OPERATOR","nameLocation":"2701:24:29","scope":9739,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7772,"name":"uint8","nodeType":"ElementaryTypeName","src":"2677:5:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"30","id":7773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2728:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"internal"},{"id":7778,"nodeType":"VariableDeclaration","src":"2802:54:29","nodes":[],"constant":true,"documentation":{"id":7775,"nodeType":"StructuredDocumentation","src":"2735:62:29","text":"@notice Index for flag that pauses operator deregistration"},"mutability":"constant","name":"PAUSED_DEREGISTER_OPERATOR","nameLocation":"2826:26:29","scope":9739,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7776,"name":"uint8","nodeType":"ElementaryTypeName","src":"2802:5:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"31","id":7777,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2855:1:29","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":7782,"nodeType":"VariableDeclaration","src":"2924:50:29","nodes":[],"constant":true,"documentation":{"id":7779,"nodeType":"StructuredDocumentation","src":"2862:57:29","text":"@notice Index for flag pausing operator stake updates"},"mutability":"constant","name":"PAUSED_UPDATE_OPERATOR","nameLocation":"2948:22:29","scope":9739,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7780,"name":"uint8","nodeType":"ElementaryTypeName","src":"2924:5:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"32","id":7781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2973:1:29","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"internal"},{"id":7786,"nodeType":"VariableDeclaration","src":"3049:46:29","nodes":[],"constant":true,"documentation":{"id":7783,"nodeType":"StructuredDocumentation","src":"2980:64:29","text":"@notice The maximum number of quorums this contract supports"},"mutability":"constant","name":"MAX_QUORUM_COUNT","nameLocation":"3073:16:29","scope":9739,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7784,"name":"uint8","nodeType":"ElementaryTypeName","src":"3049:5:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"313932","id":7785,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3092:3:29","typeDescriptions":{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},"value":"192"},"visibility":"internal"},{"id":7790,"nodeType":"VariableDeclaration","src":"3205:47:29","nodes":[],"constant":false,"documentation":{"id":7787,"nodeType":"StructuredDocumentation","src":"3102:98:29","text":"@notice the ServiceManager for this AVS, which forwards calls onto EigenLayer's core contracts"},"functionSelector":"3998fdd3","mutability":"immutable","name":"serviceManager","nameLocation":"3238:14:29","scope":9739,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IServiceManager_$12591","typeString":"contract IServiceManager"},"typeName":{"id":7789,"nodeType":"UserDefinedTypeName","pathNode":{"id":7788,"name":"IServiceManager","nodeType":"IdentifierPath","referencedDeclaration":12591,"src":"3205:15:29"},"referencedDeclaration":12591,"src":"3205:15:29","typeDescriptions":{"typeIdentifier":"t_contract$_IServiceManager_$12591","typeString":"contract IServiceManager"}},"visibility":"public"},{"id":7794,"nodeType":"VariableDeclaration","src":"3389:47:29","nodes":[],"baseFunctions":[12402],"constant":false,"documentation":{"id":7791,"nodeType":"StructuredDocumentation","src":"3258:126:29","text":"@notice the BLS Aggregate Pubkey Registry contract that will keep track of operators' aggregate BLS public keys per quorum"},"functionSelector":"5df45946","mutability":"immutable","name":"blsApkRegistry","nameLocation":"3422:14:29","scope":9739,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IBLSApkRegistry_$12091","typeString":"contract IBLSApkRegistry"},"typeName":{"id":7793,"nodeType":"UserDefinedTypeName","pathNode":{"id":7792,"name":"IBLSApkRegistry","nodeType":"IdentifierPath","referencedDeclaration":12091,"src":"3389:15:29"},"referencedDeclaration":12091,"src":"3389:15:29","typeDescriptions":{"typeIdentifier":"t_contract$_IBLSApkRegistry_$12091","typeString":"contract IBLSApkRegistry"}},"visibility":"public"},{"id":7798,"nodeType":"VariableDeclaration","src":"3528:45:29","nodes":[],"baseFunctions":[12395],"constant":false,"documentation":{"id":7795,"nodeType":"StructuredDocumentation","src":"3442:81:29","text":"@notice the Stake Registry contract that will keep track of operators' stakes"},"functionSelector":"68304835","mutability":"immutable","name":"stakeRegistry","nameLocation":"3560:13:29","scope":9739,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IStakeRegistry_$12942","typeString":"contract IStakeRegistry"},"typeName":{"id":7797,"nodeType":"UserDefinedTypeName","pathNode":{"id":7796,"name":"IStakeRegistry","nodeType":"IdentifierPath","referencedDeclaration":12942,"src":"3528:14:29"},"referencedDeclaration":12942,"src":"3528:14:29","typeDescriptions":{"typeIdentifier":"t_contract$_IStakeRegistry_$12942","typeString":"contract IStakeRegistry"}},"visibility":"public"},{"id":7802,"nodeType":"VariableDeclaration","src":"3666:45:29","nodes":[],"baseFunctions":[12409],"constant":false,"documentation":{"id":7799,"nodeType":"StructuredDocumentation","src":"3579:82:29","text":"@notice the Index Registry contract that will keep track of operators' indexes"},"functionSelector":"9e9923c2","mutability":"immutable","name":"indexRegistry","nameLocation":"3698:13:29","scope":9739,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IIndexRegistry_$12290","typeString":"contract IIndexRegistry"},"typeName":{"id":7801,"nodeType":"UserDefinedTypeName","pathNode":{"id":7800,"name":"IIndexRegistry","nodeType":"IdentifierPath","referencedDeclaration":12290,"src":"3666:14:29"},"referencedDeclaration":12290,"src":"3666:14:29","typeDescriptions":{"typeIdentifier":"t_contract$_IIndexRegistry_$12290","typeString":"contract IIndexRegistry"}},"visibility":"public"},{"id":7805,"nodeType":"VariableDeclaration","src":"3802:24:29","nodes":[],"baseFunctions":[12423],"constant":false,"documentation":{"id":7803,"nodeType":"StructuredDocumentation","src":"3718:79:29","text":"@notice the current number of quorums supported by the registry coordinator"},"functionSelector":"9aa1653d","mutability":"mutable","name":"quorumCount","nameLocation":"3815:11:29","scope":9739,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7804,"name":"uint8","nodeType":"ElementaryTypeName","src":"3802:5:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"public"},{"id":7811,"nodeType":"VariableDeclaration","src":"3899:57:29","nodes":[],"constant":false,"documentation":{"id":7806,"nodeType":"StructuredDocumentation","src":"3832:62:29","text":"@notice maps quorum number => operator cap and kick params"},"mutability":"mutable","name":"_quorumParams","nameLocation":"3943:13:29","scope":9739,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_struct$_OperatorSetParam_$12374_storage_$","typeString":"mapping(uint8 => struct IRegistryCoordinator.OperatorSetParam)"},"typeName":{"id":7810,"keyType":{"id":7807,"name":"uint8","nodeType":"ElementaryTypeName","src":"3907:5:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Mapping","src":"3899:34:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_struct$_OperatorSetParam_$12374_storage_$","typeString":"mapping(uint8 => struct IRegistryCoordinator.OperatorSetParam)"},"valueType":{"id":7809,"nodeType":"UserDefinedTypeName","pathNode":{"id":7808,"name":"OperatorSetParam","nodeType":"IdentifierPath","referencedDeclaration":12374,"src":"3916:16:29"},"referencedDeclaration":12374,"src":"3916:16:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorSetParam_$12374_storage_ptr","typeString":"struct IRegistryCoordinator.OperatorSetParam"}}},"visibility":"internal"},{"id":7818,"nodeType":"VariableDeclaration","src":"4037:72:29","nodes":[],"constant":false,"documentation":{"id":7812,"nodeType":"StructuredDocumentation","src":"3962:70:29","text":"@notice maps operator id => historical quorums they registered for"},"mutability":"mutable","name":"_operatorBitmapHistory","nameLocation":"4087:22:29","scope":9739,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_array$_t_struct$_QuorumBitmapUpdate_$12367_storage_$dyn_storage_$","typeString":"mapping(bytes32 => struct IRegistryCoordinator.QuorumBitmapUpdate[])"},"typeName":{"id":7817,"keyType":{"id":7813,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4045:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"4037:40:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_array$_t_struct$_QuorumBitmapUpdate_$12367_storage_$dyn_storage_$","typeString":"mapping(bytes32 => struct IRegistryCoordinator.QuorumBitmapUpdate[])"},"valueType":{"baseType":{"id":7815,"nodeType":"UserDefinedTypeName","pathNode":{"id":7814,"name":"QuorumBitmapUpdate","nodeType":"IdentifierPath","referencedDeclaration":12367,"src":"4056:18:29"},"referencedDeclaration":12367,"src":"4056:18:29","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumBitmapUpdate_$12367_storage_ptr","typeString":"struct IRegistryCoordinator.QuorumBitmapUpdate"}},"id":7816,"nodeType":"ArrayTypeName","src":"4056:20:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QuorumBitmapUpdate_$12367_storage_$dyn_storage_ptr","typeString":"struct IRegistryCoordinator.QuorumBitmapUpdate[]"}}},"visibility":"internal"},{"id":7824,"nodeType":"VariableDeclaration","src":"4179:55:29","nodes":[],"constant":false,"documentation":{"id":7819,"nodeType":"StructuredDocumentation","src":"4115:59:29","text":"@notice maps operator address => operator id and status"},"mutability":"mutable","name":"_operatorInfo","nameLocation":"4221:13:29","scope":9739,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_OperatorInfo_$12360_storage_$","typeString":"mapping(address => struct IRegistryCoordinator.OperatorInfo)"},"typeName":{"id":7823,"keyType":{"id":7820,"name":"address","nodeType":"ElementaryTypeName","src":"4187:7:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"4179:32:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_OperatorInfo_$12360_storage_$","typeString":"mapping(address => struct IRegistryCoordinator.OperatorInfo)"},"valueType":{"id":7822,"nodeType":"UserDefinedTypeName","pathNode":{"id":7821,"name":"OperatorInfo","nodeType":"IdentifierPath","referencedDeclaration":12360,"src":"4198:12:29"},"referencedDeclaration":12360,"src":"4198:12:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorInfo_$12360_storage_ptr","typeString":"struct IRegistryCoordinator.OperatorInfo"}}},"visibility":"internal"},{"id":7829,"nodeType":"VariableDeclaration","src":"4318:55:29","nodes":[],"constant":false,"documentation":{"id":7825,"nodeType":"StructuredDocumentation","src":"4240:73:29","text":"@notice whether the salt has been used for an operator churn approval"},"functionSelector":"1478851f","mutability":"mutable","name":"isChurnApproverSaltUsed","nameLocation":"4350:23:29","scope":9739,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"typeName":{"id":7828,"keyType":{"id":7826,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4326:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"4318:24:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"valueType":{"id":7827,"name":"bool","nodeType":"ElementaryTypeName","src":"4337:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"id":7834,"nodeType":"VariableDeclaration","src":"4484:56:29","nodes":[],"baseFunctions":[12539],"constant":false,"documentation":{"id":7830,"nodeType":"StructuredDocumentation","src":"4379:100:29","text":"@notice mapping from quorum number to the latest block that all quorums were updated all at once"},"functionSelector":"249a0c42","mutability":"mutable","name":"quorumUpdateBlockNumber","nameLocation":"4517:23:29","scope":9739,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint256_$","typeString":"mapping(uint8 => uint256)"},"typeName":{"id":7833,"keyType":{"id":7831,"name":"uint8","nodeType":"ElementaryTypeName","src":"4492:5:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Mapping","src":"4484:25:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint256_$","typeString":"mapping(uint8 => uint256)"},"valueType":{"id":7832,"name":"uint256","nodeType":"ElementaryTypeName","src":"4501:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"id":7838,"nodeType":"VariableDeclaration","src":"4640:27:29","nodes":[],"baseFunctions":[12516],"constant":false,"documentation":{"id":7835,"nodeType":"StructuredDocumentation","src":"4548:87:29","text":"@notice the dynamic-length array of the registries this coordinator is coordinating"},"functionSelector":"6347c900","mutability":"mutable","name":"registries","nameLocation":"4657:10:29","scope":9739,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[]"},"typeName":{"baseType":{"id":7836,"name":"address","nodeType":"ElementaryTypeName","src":"4640:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7837,"nodeType":"ArrayTypeName","src":"4640:9:29","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"public"},{"id":7841,"nodeType":"VariableDeclaration","src":"4798:28:29","nodes":[],"constant":false,"documentation":{"id":7839,"nodeType":"StructuredDocumentation","src":"4673:120:29","text":"@notice the address of the entity allowed to sign off on operators getting kicked out of the AVS during registration"},"functionSelector":"054310e6","mutability":"mutable","name":"churnApprover","nameLocation":"4813:13:29","scope":9739,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7840,"name":"address","nodeType":"ElementaryTypeName","src":"4798:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":7844,"nodeType":"VariableDeclaration","src":"4914:22:29","nodes":[],"constant":false,"documentation":{"id":7842,"nodeType":"StructuredDocumentation","src":"4832:77:29","text":"@notice the address of the entity allowed to eject operators from the AVS"},"functionSelector":"28f61b31","mutability":"mutable","name":"ejector","nameLocation":"4929:7:29","scope":9739,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7843,"name":"address","nodeType":"ElementaryTypeName","src":"4914:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":7856,"nodeType":"ModifierDefinition","src":"4943:141:29","nodes":[],"body":{"id":7855,"nodeType":"Block","src":"4964:120:29","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7847,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4982:3:29","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"4982:10:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":7849,"name":"ejector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7844,"src":"4996:7:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4982:21:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5265676973747279436f6f7264696e61746f722e6f6e6c79456a6563746f723a2063616c6c6572206973206e6f742074686520656a6563746f72","id":7851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5005:60:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_572a00e41588b6f0749386ca28109a14d913c721d96e55494339e3eaf62c7071","typeString":"literal_string \"RegistryCoordinator.onlyEjector: caller is not the ejector\""},"value":"RegistryCoordinator.onlyEjector: caller is not the ejector"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_572a00e41588b6f0749386ca28109a14d913c721d96e55494339e3eaf62c7071","typeString":"literal_string \"RegistryCoordinator.onlyEjector: caller is not the ejector\""}],"id":7846,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4974:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4974:92:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7853,"nodeType":"ExpressionStatement","src":"4974:92:29"},{"id":7854,"nodeType":"PlaceholderStatement","src":"5076:1:29"}]},"name":"onlyEjector","nameLocation":"4952:11:29","parameters":{"id":7845,"nodeType":"ParameterList","parameters":[],"src":"4964:0:29"},"virtual":false,"visibility":"internal"},{"id":7869,"nodeType":"ModifierDefinition","src":"5090:199:29","nodes":[],"body":{"id":7868,"nodeType":"Block","src":"5132:157:29","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":7863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7861,"name":"quorumNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7858,"src":"5163:12:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":7862,"name":"quorumCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7805,"src":"5178:11:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"5163:26:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5265676973747279436f6f7264696e61746f722e71756f72756d4578697374733a2071756f72756d20646f6573206e6f74206578697374","id":7864,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5204:57:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_d012076920cfe0811857e925a88861dde62f415c10c2ec979a481c1e6cb9d938","typeString":"literal_string \"RegistryCoordinator.quorumExists: quorum does not exist\""},"value":"RegistryCoordinator.quorumExists: quorum does not exist"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d012076920cfe0811857e925a88861dde62f415c10c2ec979a481c1e6cb9d938","typeString":"literal_string \"RegistryCoordinator.quorumExists: quorum does not exist\""}],"id":7860,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5142:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5142:129:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7866,"nodeType":"ExpressionStatement","src":"5142:129:29"},{"id":7867,"nodeType":"PlaceholderStatement","src":"5281:1:29"}]},"name":"quorumExists","nameLocation":"5099:12:29","parameters":{"id":7859,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7858,"mutability":"mutable","name":"quorumNumber","nameLocation":"5118:12:29","nodeType":"VariableDeclaration","scope":7869,"src":"5112:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7857,"name":"uint8","nodeType":"ElementaryTypeName","src":"5112:5:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"5111:20:29"},"virtual":false,"visibility":"internal"},{"id":7908,"nodeType":"FunctionDefinition","src":"5295:425:29","nodes":[],"body":{"id":7907,"nodeType":"Block","src":"5516:204:29","nodes":[],"statements":[{"expression":{"id":7890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7888,"name":"serviceManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7790,"src":"5526:14:29","typeDescriptions":{"typeIdentifier":"t_contract$_IServiceManager_$12591","typeString":"contract IServiceManager"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7889,"name":"_serviceManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7872,"src":"5543:15:29","typeDescriptions":{"typeIdentifier":"t_contract$_IServiceManager_$12591","typeString":"contract IServiceManager"}},"src":"5526:32:29","typeDescriptions":{"typeIdentifier":"t_contract$_IServiceManager_$12591","typeString":"contract IServiceManager"}},"id":7891,"nodeType":"ExpressionStatement","src":"5526:32:29"},{"expression":{"id":7894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7892,"name":"stakeRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7798,"src":"5568:13:29","typeDescriptions":{"typeIdentifier":"t_contract$_IStakeRegistry_$12942","typeString":"contract IStakeRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7893,"name":"_stakeRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7875,"src":"5584:14:29","typeDescriptions":{"typeIdentifier":"t_contract$_IStakeRegistry_$12942","typeString":"contract IStakeRegistry"}},"src":"5568:30:29","typeDescriptions":{"typeIdentifier":"t_contract$_IStakeRegistry_$12942","typeString":"contract IStakeRegistry"}},"id":7895,"nodeType":"ExpressionStatement","src":"5568:30:29"},{"expression":{"id":7898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7896,"name":"blsApkRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7794,"src":"5608:14:29","typeDescriptions":{"typeIdentifier":"t_contract$_IBLSApkRegistry_$12091","typeString":"contract IBLSApkRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7897,"name":"_blsApkRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7878,"src":"5625:15:29","typeDescriptions":{"typeIdentifier":"t_contract$_IBLSApkRegistry_$12091","typeString":"contract IBLSApkRegistry"}},"src":"5608:32:29","typeDescriptions":{"typeIdentifier":"t_contract$_IBLSApkRegistry_$12091","typeString":"contract IBLSApkRegistry"}},"id":7899,"nodeType":"ExpressionStatement","src":"5608:32:29"},{"expression":{"id":7902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7900,"name":"indexRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7802,"src":"5650:13:29","typeDescriptions":{"typeIdentifier":"t_contract$_IIndexRegistry_$12290","typeString":"contract IIndexRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7901,"name":"_indexRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7881,"src":"5666:14:29","typeDescriptions":{"typeIdentifier":"t_contract$_IIndexRegistry_$12290","typeString":"contract IIndexRegistry"}},"src":"5650:30:29","typeDescriptions":{"typeIdentifier":"t_contract$_IIndexRegistry_$12290","typeString":"contract IIndexRegistry"}},"id":7903,"nodeType":"ExpressionStatement","src":"5650:30:29"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":7904,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47158,"src":"5691:20:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":7905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5691:22:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7906,"nodeType":"ExpressionStatement","src":"5691:22:29"}]},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"hexValue":"4156535265676973747279436f6f7264696e61746f72","id":7884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5480:24:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_6ec8a99f0e7f9ebde7354a446dcb9423f3af9c58f386a53c59c5b384f9e82d11","typeString":"literal_string \"AVSRegistryCoordinator\""},"value":"AVSRegistryCoordinator"},{"hexValue":"76302e302e31","id":7885,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5506:8:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_6bda7e3f385e48841048390444cced5cc795af87758af67622e5f4f0882c4a99","typeString":"literal_string \"v0.0.1\""},"value":"v0.0.1"}],"id":7886,"kind":"baseConstructorSpecifier","modifierName":{"id":7883,"name":"EIP712","nodeType":"IdentifierPath","referencedDeclaration":49900,"src":"5473:6:29"},"nodeType":"ModifierInvocation","src":"5473:42:29"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":7882,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7872,"mutability":"mutable","name":"_serviceManager","nameLocation":"5332:15:29","nodeType":"VariableDeclaration","scope":7908,"src":"5316:31:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IServiceManager_$12591","typeString":"contract IServiceManager"},"typeName":{"id":7871,"nodeType":"UserDefinedTypeName","pathNode":{"id":7870,"name":"IServiceManager","nodeType":"IdentifierPath","referencedDeclaration":12591,"src":"5316:15:29"},"referencedDeclaration":12591,"src":"5316:15:29","typeDescriptions":{"typeIdentifier":"t_contract$_IServiceManager_$12591","typeString":"contract IServiceManager"}},"visibility":"internal"},{"constant":false,"id":7875,"mutability":"mutable","name":"_stakeRegistry","nameLocation":"5372:14:29","nodeType":"VariableDeclaration","scope":7908,"src":"5357:29:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IStakeRegistry_$12942","typeString":"contract IStakeRegistry"},"typeName":{"id":7874,"nodeType":"UserDefinedTypeName","pathNode":{"id":7873,"name":"IStakeRegistry","nodeType":"IdentifierPath","referencedDeclaration":12942,"src":"5357:14:29"},"referencedDeclaration":12942,"src":"5357:14:29","typeDescriptions":{"typeIdentifier":"t_contract$_IStakeRegistry_$12942","typeString":"contract IStakeRegistry"}},"visibility":"internal"},{"constant":false,"id":7878,"mutability":"mutable","name":"_blsApkRegistry","nameLocation":"5412:15:29","nodeType":"VariableDeclaration","scope":7908,"src":"5396:31:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IBLSApkRegistry_$12091","typeString":"contract IBLSApkRegistry"},"typeName":{"id":7877,"nodeType":"UserDefinedTypeName","pathNode":{"id":7876,"name":"IBLSApkRegistry","nodeType":"IdentifierPath","referencedDeclaration":12091,"src":"5396:15:29"},"referencedDeclaration":12091,"src":"5396:15:29","typeDescriptions":{"typeIdentifier":"t_contract$_IBLSApkRegistry_$12091","typeString":"contract IBLSApkRegistry"}},"visibility":"internal"},{"constant":false,"id":7881,"mutability":"mutable","name":"_indexRegistry","nameLocation":"5452:14:29","nodeType":"VariableDeclaration","scope":7908,"src":"5437:29:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IIndexRegistry_$12290","typeString":"contract IIndexRegistry"},"typeName":{"id":7880,"nodeType":"UserDefinedTypeName","pathNode":{"id":7879,"name":"IIndexRegistry","nodeType":"IdentifierPath","referencedDeclaration":12290,"src":"5437:14:29"},"referencedDeclaration":12290,"src":"5437:14:29","typeDescriptions":{"typeIdentifier":"t_contract$_IIndexRegistry_$12290","typeString":"contract IIndexRegistry"}},"visibility":"internal"}],"src":"5306:166:29"},"returnParameters":{"id":7887,"nodeType":"ParameterList","parameters":[],"src":"5516:0:29"},"scope":9739,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":8021,"nodeType":"FunctionDefinition","src":"5726:1212:29","nodes":[],"body":{"id":8020,"nodeType":"Block","src":"6101:837:29","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7937,"name":"_operatorSetParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7923,"src":"6132:18:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OperatorSetParam_$12374_memory_ptr_$dyn_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorSetParam memory[] memory"}},"id":7938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"6132:25:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":7939,"name":"_minimumStakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7926,"src":"6161:14:29","typeDescriptions":{"typeIdentifier":"t_array$_t_uint96_$dyn_memory_ptr","typeString":"uint96[] memory"}},"id":7940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"6161:21:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6132:50:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7942,"name":"_minimumStakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7926,"src":"6186:14:29","typeDescriptions":{"typeIdentifier":"t_array$_t_uint96_$dyn_memory_ptr","typeString":"uint96[] memory"}},"id":7943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"6186:21:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":7944,"name":"_strategyParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7931,"src":"6211:15:29","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_struct$_StrategyParams_$12632_memory_ptr_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"struct IStakeRegistry.StrategyParams memory[] memory[] memory"}},"id":7945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"6211:22:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6186:47:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6132:101:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5265676973747279436f6f7264696e61746f722e696e697469616c697a653a20696e707574206c656e677468206d69736d61746368","id":7948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6247:55:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_35c062b250d21b9ddfc8825cec4559982c691c966bcce1c4d2e8543978d4b472","typeString":"literal_string \"RegistryCoordinator.initialize: input length mismatch\""},"value":"RegistryCoordinator.initialize: input length mismatch"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_35c062b250d21b9ddfc8825cec4559982c691c966bcce1c4d2e8543978d4b472","typeString":"literal_string \"RegistryCoordinator.initialize: input length mismatch\""}],"id":7936,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6111:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6111:201:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7950,"nodeType":"ExpressionStatement","src":"6111:201:29"},{"expression":{"arguments":[{"id":7952,"name":"_initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7910,"src":"6378:13:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7951,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47002,"src":"6359:18:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":7953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6359:33:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7954,"nodeType":"ExpressionStatement","src":"6359:33:29"},{"expression":{"arguments":[{"id":7956,"name":"_pauserRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7917,"src":"6420:15:29","typeDescriptions":{"typeIdentifier":"t_contract$_IPauserRegistry_$1543","typeString":"contract IPauserRegistry"}},{"id":7957,"name":"_initialPausedStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7919,"src":"6437:20:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IPauserRegistry_$1543","typeString":"contract IPauserRegistry"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7955,"name":"_initializePauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4003,"src":"6402:17:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IPauserRegistry_$1543_$_t_uint256_$returns$__$","typeString":"function (contract IPauserRegistry,uint256)"}},"id":7958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6402:56:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7959,"nodeType":"ExpressionStatement","src":"6402:56:29"},{"expression":{"arguments":[{"id":7961,"name":"_churnApprover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7912,"src":"6486:14:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7960,"name":"_setChurnApprover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9367,"src":"6468:17:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":7962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6468:33:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7963,"nodeType":"ExpressionStatement","src":"6468:33:29"},{"expression":{"arguments":[{"id":7965,"name":"_ejector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7914,"src":"6523:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7964,"name":"_setEjector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9382,"src":"6511:11:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":7966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6511:21:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7967,"nodeType":"ExpressionStatement","src":"6511:21:29"},{"expression":{"arguments":[{"arguments":[{"id":7973,"name":"stakeRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7798,"src":"6625:13:29","typeDescriptions":{"typeIdentifier":"t_contract$_IStakeRegistry_$12942","typeString":"contract IStakeRegistry"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IStakeRegistry_$12942","typeString":"contract IStakeRegistry"}],"id":7972,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6617:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7971,"name":"address","nodeType":"ElementaryTypeName","src":"6617:7:29","typeDescriptions":{}}},"id":7974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6617:22:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7968,"name":"registries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7838,"src":"6601:10:29","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":7970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"6601:15:29","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$bound_to$_t_array$_t_address_$dyn_storage_ptr_$","typeString":"function (address[] storage pointer,address)"}},"id":7975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6601:39:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7976,"nodeType":"ExpressionStatement","src":"6601:39:29"},{"expression":{"arguments":[{"arguments":[{"id":7982,"name":"blsApkRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7794,"src":"6674:14:29","typeDescriptions":{"typeIdentifier":"t_contract$_IBLSApkRegistry_$12091","typeString":"contract IBLSApkRegistry"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IBLSApkRegistry_$12091","typeString":"contract IBLSApkRegistry"}],"id":7981,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6666:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7980,"name":"address","nodeType":"ElementaryTypeName","src":"6666:7:29","typeDescriptions":{}}},"id":7983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6666:23:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7977,"name":"registries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7838,"src":"6650:10:29","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":7979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"6650:15:29","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$bound_to$_t_array$_t_address_$dyn_storage_ptr_$","typeString":"function (address[] storage pointer,address)"}},"id":7984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6650:40:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7985,"nodeType":"ExpressionStatement","src":"6650:40:29"},{"expression":{"arguments":[{"arguments":[{"id":7991,"name":"indexRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7802,"src":"6724:13:29","typeDescriptions":{"typeIdentifier":"t_contract$_IIndexRegistry_$12290","typeString":"contract IIndexRegistry"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IIndexRegistry_$12290","typeString":"contract IIndexRegistry"}],"id":7990,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6716:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7989,"name":"address","nodeType":"ElementaryTypeName","src":"6716:7:29","typeDescriptions":{}}},"id":7992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6716:22:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7986,"name":"registries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7838,"src":"6700:10:29","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":7988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"6700:15:29","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$bound_to$_t_array$_t_address_$dyn_storage_ptr_$","typeString":"function (address[] storage pointer,address)"}},"id":7993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6700:39:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7994,"nodeType":"ExpressionStatement","src":"6700:39:29"},{"body":{"id":8018,"nodeType":"Block","src":"6832:100:29","statements":[{"expression":{"arguments":[{"baseExpression":{"id":8007,"name":"_operatorSetParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7923,"src":"6860:18:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OperatorSetParam_$12374_memory_ptr_$dyn_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorSetParam memory[] memory"}},"id":8009,"indexExpression":{"id":8008,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7996,"src":"6879:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6860:21:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorSetParam_$12374_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorSetParam memory"}},{"baseExpression":{"id":8010,"name":"_minimumStakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7926,"src":"6883:14:29","typeDescriptions":{"typeIdentifier":"t_array$_t_uint96_$dyn_memory_ptr","typeString":"uint96[] memory"}},"id":8012,"indexExpression":{"id":8011,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7996,"src":"6898:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6883:17:29","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},{"baseExpression":{"id":8013,"name":"_strategyParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7931,"src":"6902:15:29","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_struct$_StrategyParams_$12632_memory_ptr_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"struct IStakeRegistry.StrategyParams memory[] memory[] memory"}},"id":8015,"indexExpression":{"id":8014,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7996,"src":"6918:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6902:18:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StrategyParams_$12632_memory_ptr_$dyn_memory_ptr","typeString":"struct IStakeRegistry.StrategyParams memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_OperatorSetParam_$12374_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorSetParam memory"},{"typeIdentifier":"t_uint96","typeString":"uint96"},{"typeIdentifier":"t_array$_t_struct$_StrategyParams_$12632_memory_ptr_$dyn_memory_ptr","typeString":"struct IStakeRegistry.StrategyParams memory[] memory"}],"id":8006,"name":"_createQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9183,"src":"6846:13:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_OperatorSetParam_$12374_memory_ptr_$_t_uint96_$_t_array$_t_struct$_StrategyParams_$12632_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct IRegistryCoordinator.OperatorSetParam memory,uint96,struct IStakeRegistry.StrategyParams memory[] memory)"}},"id":8016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6846:75:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8017,"nodeType":"ExpressionStatement","src":"6846:75:29"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7999,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7996,"src":"6796:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":8000,"name":"_operatorSetParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7923,"src":"6800:18:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OperatorSetParam_$12374_memory_ptr_$dyn_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorSetParam memory[] memory"}},"id":8001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"6800:25:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6796:29:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8019,"initializationExpression":{"assignments":[7996],"declarations":[{"constant":false,"id":7996,"mutability":"mutable","name":"i","nameLocation":"6789:1:29","nodeType":"VariableDeclaration","scope":8019,"src":"6781:9:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7995,"name":"uint256","nodeType":"ElementaryTypeName","src":"6781:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7998,"initialValue":{"hexValue":"30","id":7997,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6793:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"6781:13:29"},"loopExpression":{"expression":{"id":8004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6827:3:29","subExpression":{"id":8003,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7996,"src":"6827:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8005,"nodeType":"ExpressionStatement","src":"6827:3:29"},"nodeType":"ForStatement","src":"6776:156:29"}]},"functionSelector":"dd8283f3","implemented":true,"kind":"function","modifiers":[{"id":7934,"kind":"modifierInvocation","modifierName":{"id":7933,"name":"initializer","nodeType":"IdentifierPath","referencedDeclaration":47079,"src":"6089:11:29"},"nodeType":"ModifierInvocation","src":"6089:11:29"}],"name":"initialize","nameLocation":"5735:10:29","parameters":{"id":7932,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7910,"mutability":"mutable","name":"_initialOwner","nameLocation":"5763:13:29","nodeType":"VariableDeclaration","scope":8021,"src":"5755:21:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7909,"name":"address","nodeType":"ElementaryTypeName","src":"5755:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7912,"mutability":"mutable","name":"_churnApprover","nameLocation":"5794:14:29","nodeType":"VariableDeclaration","scope":8021,"src":"5786:22:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7911,"name":"address","nodeType":"ElementaryTypeName","src":"5786:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7914,"mutability":"mutable","name":"_ejector","nameLocation":"5826:8:29","nodeType":"VariableDeclaration","scope":8021,"src":"5818:16:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7913,"name":"address","nodeType":"ElementaryTypeName","src":"5818:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7917,"mutability":"mutable","name":"_pauserRegistry","nameLocation":"5860:15:29","nodeType":"VariableDeclaration","scope":8021,"src":"5844:31:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPauserRegistry_$1543","typeString":"contract IPauserRegistry"},"typeName":{"id":7916,"nodeType":"UserDefinedTypeName","pathNode":{"id":7915,"name":"IPauserRegistry","nodeType":"IdentifierPath","referencedDeclaration":1543,"src":"5844:15:29"},"referencedDeclaration":1543,"src":"5844:15:29","typeDescriptions":{"typeIdentifier":"t_contract$_IPauserRegistry_$1543","typeString":"contract IPauserRegistry"}},"visibility":"internal"},{"constant":false,"id":7919,"mutability":"mutable","name":"_initialPausedStatus","nameLocation":"5893:20:29","nodeType":"VariableDeclaration","scope":8021,"src":"5885:28:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7918,"name":"uint256","nodeType":"ElementaryTypeName","src":"5885:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7923,"mutability":"mutable","name":"_operatorSetParams","nameLocation":"5949:18:29","nodeType":"VariableDeclaration","scope":8021,"src":"5923:44:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OperatorSetParam_$12374_memory_ptr_$dyn_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorSetParam[]"},"typeName":{"baseType":{"id":7921,"nodeType":"UserDefinedTypeName","pathNode":{"id":7920,"name":"OperatorSetParam","nodeType":"IdentifierPath","referencedDeclaration":12374,"src":"5923:16:29"},"referencedDeclaration":12374,"src":"5923:16:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorSetParam_$12374_storage_ptr","typeString":"struct IRegistryCoordinator.OperatorSetParam"}},"id":7922,"nodeType":"ArrayTypeName","src":"5923:18:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OperatorSetParam_$12374_storage_$dyn_storage_ptr","typeString":"struct IRegistryCoordinator.OperatorSetParam[]"}},"visibility":"internal"},{"constant":false,"id":7926,"mutability":"mutable","name":"_minimumStakes","nameLocation":"5993:14:29","nodeType":"VariableDeclaration","scope":8021,"src":"5977:30:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint96_$dyn_memory_ptr","typeString":"uint96[]"},"typeName":{"baseType":{"id":7924,"name":"uint96","nodeType":"ElementaryTypeName","src":"5977:6:29","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"id":7925,"nodeType":"ArrayTypeName","src":"5977:8:29","typeDescriptions":{"typeIdentifier":"t_array$_t_uint96_$dyn_storage_ptr","typeString":"uint96[]"}},"visibility":"internal"},{"constant":false,"id":7931,"mutability":"mutable","name":"_strategyParams","nameLocation":"6058:15:29","nodeType":"VariableDeclaration","scope":8021,"src":"6017:56:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_struct$_StrategyParams_$12632_memory_ptr_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"struct IStakeRegistry.StrategyParams[][]"},"typeName":{"baseType":{"baseType":{"id":7928,"nodeType":"UserDefinedTypeName","pathNode":{"id":7927,"name":"IStakeRegistry.StrategyParams","nodeType":"IdentifierPath","referencedDeclaration":12632,"src":"6017:29:29"},"referencedDeclaration":12632,"src":"6017:29:29","typeDescriptions":{"typeIdentifier":"t_struct$_StrategyParams_$12632_storage_ptr","typeString":"struct IStakeRegistry.StrategyParams"}},"id":7929,"nodeType":"ArrayTypeName","src":"6017:31:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StrategyParams_$12632_storage_$dyn_storage_ptr","typeString":"struct IStakeRegistry.StrategyParams[]"}},"id":7930,"nodeType":"ArrayTypeName","src":"6017:33:29","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_struct$_StrategyParams_$12632_storage_$dyn_storage_$dyn_storage_ptr","typeString":"struct IStakeRegistry.StrategyParams[][]"}},"visibility":"internal"}],"src":"5745:334:29"},"returnParameters":{"id":7935,"nodeType":"ParameterList","parameters":[],"src":"6101:0:29"},"scope":9739,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8097,"nodeType":"FunctionDefinition","src":"7837:1463:29","nodes":[],"body":{"id":8096,"nodeType":"Block","src":"8119:1181:29","nodes":[],"statements":[{"assignments":[8040],"declarations":[{"constant":false,"id":8040,"mutability":"mutable","name":"operatorId","nameLocation":"8317:10:29","nodeType":"VariableDeclaration","scope":8096,"src":"8309:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8039,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8309:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" IF the operator has never registered a pubkey before, THEN register their pubkey\n OTHERWISE, simply ignore the provided `params` input","id":8046,"initialValue":{"arguments":[{"expression":{"id":8042,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8353:3:29","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"8353:10:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8044,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8029,"src":"8365:6:29","typeDescriptions":{"typeIdentifier":"t_struct$_PubkeyRegistrationParams_$11945_calldata_ptr","typeString":"struct IBLSApkRegistry.PubkeyRegistrationParams calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_PubkeyRegistrationParams_$11945_calldata_ptr","typeString":"struct IBLSApkRegistry.PubkeyRegistrationParams calldata"}],"id":8041,"name":"_getOrCreateOperatorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8779,"src":"8330:22:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_struct$_PubkeyRegistrationParams_$11945_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (address,struct IBLSApkRegistry.PubkeyRegistrationParams calldata) returns (bytes32)"}},"id":8045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8330:42:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"8309:63:29"},{"assignments":[8051],"declarations":[{"constant":false,"id":8051,"mutability":"mutable","name":"numOperatorsPerQuorum","nameLocation":"8466:21:29","nodeType":"VariableDeclaration","scope":8096,"src":"8450:37:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_memory_ptr","typeString":"uint32[]"},"typeName":{"baseType":{"id":8049,"name":"uint32","nodeType":"ElementaryTypeName","src":"8450:6:29","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":8050,"nodeType":"ArrayTypeName","src":"8450:8:29","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_storage_ptr","typeString":"uint32[]"}},"visibility":"internal"}],"id":8061,"initialValue":{"expression":{"arguments":[{"expression":{"id":8053,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8532:3:29","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"8532:10:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8055,"name":"operatorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8040,"src":"8569:10:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8056,"name":"quorumNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8024,"src":"8608:13:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":8057,"name":"socket","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8026,"src":"8644:6:29","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"id":8058,"name":"operatorSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8032,"src":"8683:17:29","typeDescriptions":{"typeIdentifier":"t_struct$_SignatureWithSaltAndExpiry_$1558_memory_ptr","typeString":"struct ISignatureUtils.SignatureWithSaltAndExpiry memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_struct$_SignatureWithSaltAndExpiry_$1558_memory_ptr","typeString":"struct ISignatureUtils.SignatureWithSaltAndExpiry memory"}],"id":8052,"name":"_registerOperator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8743,"src":"8490:17:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$_t_bytes_calldata_ptr_$_t_string_memory_ptr_$_t_struct$_SignatureWithSaltAndExpiry_$1558_memory_ptr_$returns$_t_struct$_RegisterResults_$8599_memory_ptr_$","typeString":"function (address,bytes32,bytes calldata,string memory,struct ISignatureUtils.SignatureWithSaltAndExpiry memory) returns (struct RegistryCoordinator.RegisterResults memory)"}},"id":8059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["operator","operatorId","quorumNumbers","socket","operatorSignature"],"nodeType":"FunctionCall","src":"8490:221:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_RegisterResults_$8599_memory_ptr","typeString":"struct RegistryCoordinator.RegisterResults memory"}},"id":8060,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"numOperatorsPerQuorum","nodeType":"MemberAccess","referencedDeclaration":8592,"src":"8490:243:29","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_memory_ptr","typeString":"uint32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"8450:283:29"},{"body":{"id":8094,"nodeType":"Block","src":"8795:499:29","statements":[{"assignments":[8074],"declarations":[{"constant":false,"id":8074,"mutability":"mutable","name":"quorumNumber","nameLocation":"8815:12:29","nodeType":"VariableDeclaration","scope":8094,"src":"8809:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":8073,"name":"uint8","nodeType":"ElementaryTypeName","src":"8809:5:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":8081,"initialValue":{"arguments":[{"baseExpression":{"id":8077,"name":"quorumNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8024,"src":"8836:13:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":8079,"indexExpression":{"id":8078,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8063,"src":"8850:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8836:16:29","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"id":8076,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8830:5:29","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":8075,"name":"uint8","nodeType":"ElementaryTypeName","src":"8830:5:29","typeDescriptions":{}}},"id":8080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8830:23:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"8809:44:29"},{"documentation":" The new operator count for each quorum may not exceed the configured maximum\n If it does, use `registerOperatorWithChurn` instead.","expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"id":8090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":8083,"name":"numOperatorsPerQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8051,"src":"9109:21:29","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_memory_ptr","typeString":"uint32[] memory"}},"id":8085,"indexExpression":{"id":8084,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8063,"src":"9131:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9109:24:29","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"baseExpression":{"id":8086,"name":"_quorumParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7811,"src":"9137:13:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_struct$_OperatorSetParam_$12374_storage_$","typeString":"mapping(uint8 => struct IRegistryCoordinator.OperatorSetParam storage ref)"}},"id":8088,"indexExpression":{"id":8087,"name":"quorumNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8074,"src":"9151:12:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9137:27:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorSetParam_$12374_storage","typeString":"struct IRegistryCoordinator.OperatorSetParam storage ref"}},"id":8089,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"maxOperatorCount","nodeType":"MemberAccess","referencedDeclaration":12369,"src":"9137:44:29","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"9109:72:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5265676973747279436f6f7264696e61746f722e72656769737465724f70657261746f723a206f70657261746f7220636f756e742065786365656473206d6178696d756d","id":8091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9199:70:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_e784b63cc0608b0cebd540beca4ff851ffffd138491e36ac752f28ead70bfb30","typeString":"literal_string \"RegistryCoordinator.registerOperator: operator count exceeds maximum\""},"value":"RegistryCoordinator.registerOperator: operator count exceeds maximum"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e784b63cc0608b0cebd540beca4ff851ffffd138491e36ac752f28ead70bfb30","typeString":"literal_string \"RegistryCoordinator.registerOperator: operator count exceeds maximum\""}],"id":8082,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9084:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9084:199:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8093,"nodeType":"ExpressionStatement","src":"9084:199:29"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8066,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8063,"src":"8764:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":8067,"name":"quorumNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8024,"src":"8768:13:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":8068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"8768:20:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8764:24:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8095,"initializationExpression":{"assignments":[8063],"declarations":[{"constant":false,"id":8063,"mutability":"mutable","name":"i","nameLocation":"8757:1:29","nodeType":"VariableDeclaration","scope":8095,"src":"8749:9:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8062,"name":"uint256","nodeType":"ElementaryTypeName","src":"8749:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8065,"initialValue":{"hexValue":"30","id":8064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8761:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8749:13:29"},"loopExpression":{"expression":{"id":8071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8790:3:29","subExpression":{"id":8070,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8063,"src":"8790:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8072,"nodeType":"ExpressionStatement","src":"8790:3:29"},"nodeType":"ForStatement","src":"8744:550:29"}]},"documentation":{"id":8022,"nodeType":"StructuredDocumentation","src":"7163:669:29","text":" @notice Registers msg.sender as an operator for one or more quorums. If any quorum reaches its maximum\n operator capacity, this method will fail.\n @param quorumNumbers is an ordered byte array containing the quorum numbers being registered for\n @param socket is the socket of the operator\n @param params contains the G1 & G2 public keys of the operator, and a signature proving their ownership\n @dev the `params` input param is ignored if the caller has previously registered a public key\n @param operatorSignature is the signature of the operator used by the AVS to register the operator in the delegation manager"},"functionSelector":"a50857bf","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":8035,"name":"PAUSED_REGISTER_OPERATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7774,"src":"8093:24:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":8036,"kind":"modifierInvocation","modifierName":{"id":8034,"name":"onlyWhenNotPaused","nodeType":"IdentifierPath","referencedDeclaration":3956,"src":"8075:17:29"},"nodeType":"ModifierInvocation","src":"8075:43:29"}],"name":"registerOperator","nameLocation":"7846:16:29","parameters":{"id":8033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8024,"mutability":"mutable","name":"quorumNumbers","nameLocation":"7887:13:29","nodeType":"VariableDeclaration","scope":8097,"src":"7872:28:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":8023,"name":"bytes","nodeType":"ElementaryTypeName","src":"7872:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":8026,"mutability":"mutable","name":"socket","nameLocation":"7926:6:29","nodeType":"VariableDeclaration","scope":8097,"src":"7910:22:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8025,"name":"string","nodeType":"ElementaryTypeName","src":"7910:6:29","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8029,"mutability":"mutable","name":"params","nameLocation":"7992:6:29","nodeType":"VariableDeclaration","scope":8097,"src":"7942:56:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_PubkeyRegistrationParams_$11945_calldata_ptr","typeString":"struct IBLSApkRegistry.PubkeyRegistrationParams"},"typeName":{"id":8028,"nodeType":"UserDefinedTypeName","pathNode":{"id":8027,"name":"IBLSApkRegistry.PubkeyRegistrationParams","nodeType":"IdentifierPath","referencedDeclaration":11945,"src":"7942:40:29"},"referencedDeclaration":11945,"src":"7942:40:29","typeDescriptions":{"typeIdentifier":"t_struct$_PubkeyRegistrationParams_$11945_storage_ptr","typeString":"struct IBLSApkRegistry.PubkeyRegistrationParams"}},"visibility":"internal"},{"constant":false,"id":8032,"mutability":"mutable","name":"operatorSignature","nameLocation":"8042:17:29","nodeType":"VariableDeclaration","scope":8097,"src":"8008:51:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SignatureWithSaltAndExpiry_$1558_memory_ptr","typeString":"struct ISignatureUtils.SignatureWithSaltAndExpiry"},"typeName":{"id":8031,"nodeType":"UserDefinedTypeName","pathNode":{"id":8030,"name":"SignatureWithSaltAndExpiry","nodeType":"IdentifierPath","referencedDeclaration":1558,"src":"8008:26:29"},"referencedDeclaration":1558,"src":"8008:26:29","typeDescriptions":{"typeIdentifier":"t_struct$_SignatureWithSaltAndExpiry_$1558_storage_ptr","typeString":"struct ISignatureUtils.SignatureWithSaltAndExpiry"}},"visibility":"internal"}],"src":"7862:203:29"},"returnParameters":{"id":8037,"nodeType":"ParameterList","parameters":[],"src":"8119:0:29"},"scope":9739,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8228,"nodeType":"FunctionDefinition","src":"10238:2488:29","nodes":[],"body":{"id":8227,"nodeType":"Block","src":"10653:2073:29","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8122,"name":"operatorKickParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8109,"src":"10671:18:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OperatorKickParam_$12379_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRegistryCoordinator.OperatorKickParam calldata[] calldata"}},"id":8123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"10671:25:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":8124,"name":"quorumNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8100,"src":"10700:13:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":8125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"10700:20:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10671:49:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5265676973747279436f6f7264696e61746f722e72656769737465724f70657261746f7257697468436875726e3a20696e707574206c656e677468206d69736d61746368","id":8127,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10722:70:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_8caf6fb59e538c7e1277e0ebd9f5e6deed64b1090dbc8b67ba8391dee2776aee","typeString":"literal_string \"RegistryCoordinator.registerOperatorWithChurn: input length mismatch\""},"value":"RegistryCoordinator.registerOperatorWithChurn: input length mismatch"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8caf6fb59e538c7e1277e0ebd9f5e6deed64b1090dbc8b67ba8391dee2776aee","typeString":"literal_string \"RegistryCoordinator.registerOperatorWithChurn: input length mismatch\""}],"id":8121,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10663:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10663:130:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8129,"nodeType":"ExpressionStatement","src":"10663:130:29"},{"assignments":[8132],"declarations":[{"constant":false,"id":8132,"mutability":"mutable","name":"operatorId","nameLocation":"10992:10:29","nodeType":"VariableDeclaration","scope":8227,"src":"10984:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8131,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10984:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" IF the operator has never registered a pubkey before, THEN register their pubkey\n OTHERWISE, simply ignore the provided `params` input","id":8138,"initialValue":{"arguments":[{"expression":{"id":8134,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"11028:3:29","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"11028:10:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8136,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8105,"src":"11040:6:29","typeDescriptions":{"typeIdentifier":"t_struct$_PubkeyRegistrationParams_$11945_calldata_ptr","typeString":"struct IBLSApkRegistry.PubkeyRegistrationParams calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_PubkeyRegistrationParams_$11945_calldata_ptr","typeString":"struct IBLSApkRegistry.PubkeyRegistrationParams calldata"}],"id":8133,"name":"_getOrCreateOperatorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8779,"src":"11005:22:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_struct$_PubkeyRegistrationParams_$11945_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (address,struct IBLSApkRegistry.PubkeyRegistrationParams calldata) returns (bytes32)"}},"id":8137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11005:42:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"10984:63:29"},{"expression":{"arguments":[{"id":8140,"name":"operatorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8132,"src":"11219:10:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8141,"name":"operatorKickParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8109,"src":"11263:18:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OperatorKickParam_$12379_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRegistryCoordinator.OperatorKickParam calldata[] calldata"}},{"id":8142,"name":"churnApproverSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8112,"src":"11319:22:29","typeDescriptions":{"typeIdentifier":"t_struct$_SignatureWithSaltAndExpiry_$1558_memory_ptr","typeString":"struct ISignatureUtils.SignatureWithSaltAndExpiry memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_array$_t_struct$_OperatorKickParam_$12379_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRegistryCoordinator.OperatorKickParam calldata[] calldata"},{"typeIdentifier":"t_struct$_SignatureWithSaltAndExpiry_$1558_memory_ptr","typeString":"struct ISignatureUtils.SignatureWithSaltAndExpiry memory"}],"id":8139,"name":"_verifyChurnApproverSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9123,"src":"11152:29:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_array$_t_struct$_OperatorKickParam_$12379_memory_ptr_$dyn_memory_ptr_$_t_struct$_SignatureWithSaltAndExpiry_$1558_memory_ptr_$returns$__$","typeString":"function (bytes32,struct IRegistryCoordinator.OperatorKickParam memory[] memory,struct ISignatureUtils.SignatureWithSaltAndExpiry memory)"}},"id":8143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["registeringOperatorId","operatorKickParams","churnApproverSignature"],"nodeType":"FunctionCall","src":"11152:200:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8144,"nodeType":"ExpressionStatement","src":"11152:200:29"},{"assignments":[8147],"declarations":[{"constant":false,"id":8147,"mutability":"mutable","name":"results","nameLocation":"11453:7:29","nodeType":"VariableDeclaration","scope":8227,"src":"11430:30:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RegisterResults_$8599_memory_ptr","typeString":"struct RegistryCoordinator.RegisterResults"},"typeName":{"id":8146,"nodeType":"UserDefinedTypeName","pathNode":{"id":8145,"name":"RegisterResults","nodeType":"IdentifierPath","referencedDeclaration":8599,"src":"11430:15:29"},"referencedDeclaration":8599,"src":"11430:15:29","typeDescriptions":{"typeIdentifier":"t_struct$_RegisterResults_$8599_storage_ptr","typeString":"struct RegistryCoordinator.RegisterResults"}},"visibility":"internal"}],"id":8156,"initialValue":{"arguments":[{"expression":{"id":8149,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"11505:3:29","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"11505:10:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8151,"name":"operatorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8132,"src":"11541:10:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8152,"name":"quorumNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8100,"src":"11580:13:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":8153,"name":"socket","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8102,"src":"11615:6:29","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"id":8154,"name":"operatorSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8115,"src":"11654:17:29","typeDescriptions":{"typeIdentifier":"t_struct$_SignatureWithSaltAndExpiry_$1558_memory_ptr","typeString":"struct ISignatureUtils.SignatureWithSaltAndExpiry memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_struct$_SignatureWithSaltAndExpiry_$1558_memory_ptr","typeString":"struct ISignatureUtils.SignatureWithSaltAndExpiry memory"}],"id":8148,"name":"_registerOperator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8743,"src":"11463:17:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$_t_bytes_calldata_ptr_$_t_string_memory_ptr_$_t_struct$_SignatureWithSaltAndExpiry_$1558_memory_ptr_$returns$_t_struct$_RegisterResults_$8599_memory_ptr_$","typeString":"function (address,bytes32,bytes calldata,string memory,struct ISignatureUtils.SignatureWithSaltAndExpiry memory) returns (struct RegistryCoordinator.RegisterResults memory)"}},"id":8155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["operator","operatorId","quorumNumbers","socket","operatorSignature"],"nodeType":"FunctionCall","src":"11463:219:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_RegisterResults_$8599_memory_ptr","typeString":"struct RegistryCoordinator.RegisterResults memory"}},"nodeType":"VariableDeclarationStatement","src":"11430:252:29"},{"body":{"id":8225,"nodeType":"Block","src":"11744:976:29","statements":[{"assignments":[8170],"declarations":[{"constant":false,"id":8170,"mutability":"mutable","name":"operatorSetParams","nameLocation":"11854:17:29","nodeType":"VariableDeclaration","scope":8225,"src":"11830:41:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorSetParam_$12374_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorSetParam"},"typeName":{"id":8169,"nodeType":"UserDefinedTypeName","pathNode":{"id":8168,"name":"OperatorSetParam","nodeType":"IdentifierPath","referencedDeclaration":12374,"src":"11830:16:29"},"referencedDeclaration":12374,"src":"11830:16:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorSetParam_$12374_storage_ptr","typeString":"struct IRegistryCoordinator.OperatorSetParam"}},"visibility":"internal"}],"id":8179,"initialValue":{"baseExpression":{"id":8171,"name":"_quorumParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7811,"src":"11874:13:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_struct$_OperatorSetParam_$12374_storage_$","typeString":"mapping(uint8 => struct IRegistryCoordinator.OperatorSetParam storage ref)"}},"id":8178,"indexExpression":{"arguments":[{"baseExpression":{"id":8174,"name":"quorumNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8100,"src":"11894:13:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":8176,"indexExpression":{"id":8175,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8158,"src":"11908:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11894:16:29","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"id":8173,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11888:5:29","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":8172,"name":"uint8","nodeType":"ElementaryTypeName","src":"11888:5:29","typeDescriptions":{}}},"id":8177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11888:23:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11874:38:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorSetParam_$12374_storage","typeString":"struct IRegistryCoordinator.OperatorSetParam storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11830:82:29"},{"condition":{"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"id":8186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":8180,"name":"results","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8147,"src":"12144:7:29","typeDescriptions":{"typeIdentifier":"t_struct$_RegisterResults_$8599_memory_ptr","typeString":"struct RegistryCoordinator.RegisterResults memory"}},"id":8181,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"numOperatorsPerQuorum","nodeType":"MemberAccess","referencedDeclaration":8592,"src":"12144:29:29","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_memory_ptr","typeString":"uint32[] memory"}},"id":8183,"indexExpression":{"id":8182,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8158,"src":"12174:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12144:32:29","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":8184,"name":"operatorSetParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8170,"src":"12179:17:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorSetParam_$12374_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorSetParam memory"}},"id":8185,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"maxOperatorCount","nodeType":"MemberAccess","referencedDeclaration":12369,"src":"12179:34:29","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"12144:69:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" If the new operator count for any quorum exceeds the maximum, validate\n that churn can be performed, then deregister the specified operator","id":8224,"nodeType":"IfStatement","src":"12140:570:29","trueBody":{"id":8223,"nodeType":"Block","src":"12215:495:29","statements":[{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":8190,"name":"quorumNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8100,"src":"12290:13:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":8192,"indexExpression":{"id":8191,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8158,"src":"12304:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12290:16:29","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"id":8189,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12284:5:29","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":8188,"name":"uint8","nodeType":"ElementaryTypeName","src":"12284:5:29","typeDescriptions":{}}},"id":8193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12284:23:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"baseExpression":{"expression":{"id":8194,"name":"results","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8147,"src":"12347:7:29","typeDescriptions":{"typeIdentifier":"t_struct$_RegisterResults_$8599_memory_ptr","typeString":"struct RegistryCoordinator.RegisterResults memory"}},"id":8195,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalStakes","nodeType":"MemberAccess","referencedDeclaration":8598,"src":"12347:19:29","typeDescriptions":{"typeIdentifier":"t_array$_t_uint96_$dyn_memory_ptr","typeString":"uint96[] memory"}},"id":8197,"indexExpression":{"id":8196,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8158,"src":"12367:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12347:22:29","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},{"expression":{"id":8198,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12404:3:29","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"12404:10:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"expression":{"id":8200,"name":"results","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8147,"src":"12454:7:29","typeDescriptions":{"typeIdentifier":"t_struct$_RegisterResults_$8599_memory_ptr","typeString":"struct RegistryCoordinator.RegisterResults memory"}},"id":8201,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"operatorStakes","nodeType":"MemberAccess","referencedDeclaration":8595,"src":"12454:22:29","typeDescriptions":{"typeIdentifier":"t_array$_t_uint96_$dyn_memory_ptr","typeString":"uint96[] memory"}},"id":8203,"indexExpression":{"id":8202,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8158,"src":"12477:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12454:25:29","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},{"baseExpression":{"id":8204,"name":"operatorKickParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8109,"src":"12513:18:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OperatorKickParam_$12379_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRegistryCoordinator.OperatorKickParam calldata[] calldata"}},"id":8206,"indexExpression":{"id":8205,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8158,"src":"12532:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12513:21:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorKickParam_$12379_calldata_ptr","typeString":"struct IRegistryCoordinator.OperatorKickParam calldata"}},{"id":8207,"name":"operatorSetParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8170,"src":"12567:17:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorSetParam_$12374_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorSetParam memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint96","typeString":"uint96"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint96","typeString":"uint96"},{"typeIdentifier":"t_struct$_OperatorKickParam_$12379_calldata_ptr","typeString":"struct IRegistryCoordinator.OperatorKickParam calldata"},{"typeIdentifier":"t_struct$_OperatorSetParam_$12374_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorSetParam memory"}],"id":8187,"name":"_validateChurn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8852,"src":"12233:14:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint8_$_t_uint96_$_t_address_$_t_uint96_$_t_struct$_OperatorKickParam_$12379_memory_ptr_$_t_struct$_OperatorSetParam_$12374_memory_ptr_$returns$__$","typeString":"function (uint8,uint96,address,uint96,struct IRegistryCoordinator.OperatorKickParam memory,struct IRegistryCoordinator.OperatorSetParam memory) view"}},"id":8208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["quorumNumber","totalQuorumStake","newOperator","newOperatorStake","kickParams","setParams"],"nodeType":"FunctionCall","src":"12233:370:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8209,"nodeType":"ExpressionStatement","src":"12233:370:29"},{"expression":{"arguments":[{"expression":{"baseExpression":{"id":8211,"name":"operatorKickParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8109,"src":"12642:18:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OperatorKickParam_$12379_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRegistryCoordinator.OperatorKickParam calldata[] calldata"}},"id":8213,"indexExpression":{"id":8212,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8158,"src":"12661:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12642:21:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorKickParam_$12379_calldata_ptr","typeString":"struct IRegistryCoordinator.OperatorKickParam calldata"}},"id":8214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"operator","nodeType":"MemberAccess","referencedDeclaration":12378,"src":"12642:30:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":8215,"name":"quorumNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8100,"src":"12674:13:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8217,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8158,"src":"12690:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":8218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12692:1:29","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12690:3:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"12674:20:29","startExpression":{"id":8216,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8158,"src":"12688:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":8210,"name":"_deregisterOperator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8982,"src":"12622:19:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":8221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12622:73:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8222,"nodeType":"ExpressionStatement","src":"12622:73:29"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8161,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8158,"src":"11713:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":8162,"name":"quorumNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8100,"src":"11717:13:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":8163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"11717:20:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11713:24:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8226,"initializationExpression":{"assignments":[8158],"declarations":[{"constant":false,"id":8158,"mutability":"mutable","name":"i","nameLocation":"11706:1:29","nodeType":"VariableDeclaration","scope":8226,"src":"11698:9:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8157,"name":"uint256","nodeType":"ElementaryTypeName","src":"11698:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8160,"initialValue":{"hexValue":"30","id":8159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11710:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11698:13:29"},"loopExpression":{"expression":{"id":8166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"11739:3:29","subExpression":{"id":8165,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8158,"src":"11739:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8167,"nodeType":"ExpressionStatement","src":"11739:3:29"},"nodeType":"ForStatement","src":"11693:1027:29"}]},"documentation":{"id":8098,"nodeType":"StructuredDocumentation","src":"9306:927:29","text":" @notice Registers msg.sender as an operator for one or more quorums. If any quorum reaches its maximum operator\n capacity, `operatorKickParams` is used to replace an old operator with the new one.\n @param quorumNumbers is an ordered byte array containing the quorum numbers being registered for\n @param params contains the G1 & G2 public keys of the operator, and a signature proving their ownership\n @param operatorKickParams are used to determine which operator is removed to maintain quorum capacity as the\n operator registers for quorums.\n @param churnApproverSignature is the signature of the churnApprover on the operator kick params\n @param operatorSignature is the signature of the operator used by the AVS to register the operator in the delegation manager\n @dev the `params` input param is ignored if the caller has previously registered a public key"},"functionSelector":"9b5d177b","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":8118,"name":"PAUSED_REGISTER_OPERATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7774,"src":"10627:24:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":8119,"kind":"modifierInvocation","modifierName":{"id":8117,"name":"onlyWhenNotPaused","nodeType":"IdentifierPath","referencedDeclaration":3956,"src":"10609:17:29"},"nodeType":"ModifierInvocation","src":"10609:43:29"}],"name":"registerOperatorWithChurn","nameLocation":"10247:25:29","parameters":{"id":8116,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8100,"mutability":"mutable","name":"quorumNumbers","nameLocation":"10297:13:29","nodeType":"VariableDeclaration","scope":8228,"src":"10282:28:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":8099,"name":"bytes","nodeType":"ElementaryTypeName","src":"10282:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":8102,"mutability":"mutable","name":"socket","nameLocation":"10337:6:29","nodeType":"VariableDeclaration","scope":8228,"src":"10321:22:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8101,"name":"string","nodeType":"ElementaryTypeName","src":"10321:6:29","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8105,"mutability":"mutable","name":"params","nameLocation":"10403:6:29","nodeType":"VariableDeclaration","scope":8228,"src":"10353:56:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_PubkeyRegistrationParams_$11945_calldata_ptr","typeString":"struct IBLSApkRegistry.PubkeyRegistrationParams"},"typeName":{"id":8104,"nodeType":"UserDefinedTypeName","pathNode":{"id":8103,"name":"IBLSApkRegistry.PubkeyRegistrationParams","nodeType":"IdentifierPath","referencedDeclaration":11945,"src":"10353:40:29"},"referencedDeclaration":11945,"src":"10353:40:29","typeDescriptions":{"typeIdentifier":"t_struct$_PubkeyRegistrationParams_$11945_storage_ptr","typeString":"struct IBLSApkRegistry.PubkeyRegistrationParams"}},"visibility":"internal"},{"constant":false,"id":8109,"mutability":"mutable","name":"operatorKickParams","nameLocation":"10448:18:29","nodeType":"VariableDeclaration","scope":8228,"src":"10419:47:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OperatorKickParam_$12379_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRegistryCoordinator.OperatorKickParam[]"},"typeName":{"baseType":{"id":8107,"nodeType":"UserDefinedTypeName","pathNode":{"id":8106,"name":"OperatorKickParam","nodeType":"IdentifierPath","referencedDeclaration":12379,"src":"10419:17:29"},"referencedDeclaration":12379,"src":"10419:17:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorKickParam_$12379_storage_ptr","typeString":"struct IRegistryCoordinator.OperatorKickParam"}},"id":8108,"nodeType":"ArrayTypeName","src":"10419:19:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OperatorKickParam_$12379_storage_$dyn_storage_ptr","typeString":"struct IRegistryCoordinator.OperatorKickParam[]"}},"visibility":"internal"},{"constant":false,"id":8112,"mutability":"mutable","name":"churnApproverSignature","nameLocation":"10510:22:29","nodeType":"VariableDeclaration","scope":8228,"src":"10476:56:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SignatureWithSaltAndExpiry_$1558_memory_ptr","typeString":"struct ISignatureUtils.SignatureWithSaltAndExpiry"},"typeName":{"id":8111,"nodeType":"UserDefinedTypeName","pathNode":{"id":8110,"name":"SignatureWithSaltAndExpiry","nodeType":"IdentifierPath","referencedDeclaration":1558,"src":"10476:26:29"},"referencedDeclaration":1558,"src":"10476:26:29","typeDescriptions":{"typeIdentifier":"t_struct$_SignatureWithSaltAndExpiry_$1558_storage_ptr","typeString":"struct ISignatureUtils.SignatureWithSaltAndExpiry"}},"visibility":"internal"},{"constant":false,"id":8115,"mutability":"mutable","name":"operatorSignature","nameLocation":"10576:17:29","nodeType":"VariableDeclaration","scope":8228,"src":"10542:51:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SignatureWithSaltAndExpiry_$1558_memory_ptr","typeString":"struct ISignatureUtils.SignatureWithSaltAndExpiry"},"typeName":{"id":8114,"nodeType":"UserDefinedTypeName","pathNode":{"id":8113,"name":"SignatureWithSaltAndExpiry","nodeType":"IdentifierPath","referencedDeclaration":1558,"src":"10542:26:29"},"referencedDeclaration":1558,"src":"10542:26:29","typeDescriptions":{"typeIdentifier":"t_struct$_SignatureWithSaltAndExpiry_$1558_storage_ptr","typeString":"struct ISignatureUtils.SignatureWithSaltAndExpiry"}},"visibility":"internal"}],"src":"10272:327:29"},"returnParameters":{"id":8120,"nodeType":"ParameterList","parameters":[],"src":"10653:0:29"},"scope":9739,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8244,"nodeType":"FunctionDefinition","src":"12918:252:29","nodes":[],"body":{"id":8243,"nodeType":"Block","src":"13045:125:29","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":8238,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13099:3:29","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"13099:10:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8240,"name":"quorumNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8231,"src":"13139:13:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":8237,"name":"_deregisterOperator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8982,"src":"13055:19:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":8241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["operator","quorumNumbers"],"nodeType":"FunctionCall","src":"13055:108:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8242,"nodeType":"ExpressionStatement","src":"13055:108:29"}]},"documentation":{"id":8229,"nodeType":"StructuredDocumentation","src":"12732:181:29","text":" @notice Deregisters the caller from one or more quorums\n @param quorumNumbers is an ordered byte array containing the quorum numbers being deregistered from"},"functionSelector":"ca4f2d97","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":8234,"name":"PAUSED_DEREGISTER_OPERATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7778,"src":"13017:26:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":8235,"kind":"modifierInvocation","modifierName":{"id":8233,"name":"onlyWhenNotPaused","nodeType":"IdentifierPath","referencedDeclaration":3956,"src":"12999:17:29"},"nodeType":"ModifierInvocation","src":"12999:45:29"}],"name":"deregisterOperator","nameLocation":"12927:18:29","parameters":{"id":8232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8231,"mutability":"mutable","name":"quorumNumbers","nameLocation":"12970:13:29","nodeType":"VariableDeclaration","scope":8244,"src":"12955:28:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":8230,"name":"bytes","nodeType":"ElementaryTypeName","src":"12955:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12945:44:29"},"returnParameters":{"id":8236,"nodeType":"ParameterList","parameters":[],"src":"13045:0:29"},"scope":9739,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8305,"nodeType":"FunctionDefinition","src":"13457:656:29","nodes":[],"body":{"id":8304,"nodeType":"Block","src":"13563:550:29","nodes":[],"statements":[{"body":{"id":8302,"nodeType":"Block","src":"13620:487:29","statements":[{"assignments":[8266],"declarations":[{"constant":false,"id":8266,"mutability":"mutable","name":"operator","nameLocation":"13642:8:29","nodeType":"VariableDeclaration","scope":8302,"src":"13634:16:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8265,"name":"address","nodeType":"ElementaryTypeName","src":"13634:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":8270,"initialValue":{"baseExpression":{"id":8267,"name":"operators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8248,"src":"13653:9:29","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":8269,"indexExpression":{"id":8268,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8255,"src":"13663:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13653:12:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"13634:31:29"},{"assignments":[8273],"declarations":[{"constant":false,"id":8273,"mutability":"mutable","name":"operatorInfo","nameLocation":"13699:12:29","nodeType":"VariableDeclaration","scope":8302,"src":"13679:32:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorInfo_$12360_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorInfo"},"typeName":{"id":8272,"nodeType":"UserDefinedTypeName","pathNode":{"id":8271,"name":"OperatorInfo","nodeType":"IdentifierPath","referencedDeclaration":12360,"src":"13679:12:29"},"referencedDeclaration":12360,"src":"13679:12:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorInfo_$12360_storage_ptr","typeString":"struct IRegistryCoordinator.OperatorInfo"}},"visibility":"internal"}],"id":8277,"initialValue":{"baseExpression":{"id":8274,"name":"_operatorInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7824,"src":"13714:13:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_OperatorInfo_$12360_storage_$","typeString":"mapping(address => struct IRegistryCoordinator.OperatorInfo storage ref)"}},"id":8276,"indexExpression":{"id":8275,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8266,"src":"13728:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13714:23:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorInfo_$12360_storage","typeString":"struct IRegistryCoordinator.OperatorInfo storage ref"}},"nodeType":"VariableDeclarationStatement","src":"13679:58:29"},{"assignments":[8279],"declarations":[{"constant":false,"id":8279,"mutability":"mutable","name":"operatorId","nameLocation":"13759:10:29","nodeType":"VariableDeclaration","scope":8302,"src":"13751:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8278,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13751:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":8282,"initialValue":{"expression":{"id":8280,"name":"operatorInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8273,"src":"13772:12:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorInfo_$12360_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorInfo memory"}},"id":8281,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"operatorId","nodeType":"MemberAccess","referencedDeclaration":12356,"src":"13772:23:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"13751:44:29"},{"assignments":[8284],"declarations":[{"constant":false,"id":8284,"mutability":"mutable","name":"currentBitmap","nameLocation":"13886:13:29","nodeType":"VariableDeclaration","scope":8302,"src":"13878:21:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"},"typeName":{"id":8283,"name":"uint192","nodeType":"ElementaryTypeName","src":"13878:7:29","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"visibility":"internal"}],"id":8288,"initialValue":{"arguments":[{"id":8286,"name":"operatorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8279,"src":"13925:10:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8285,"name":"_currentOperatorBitmap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9332,"src":"13902:22:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_uint192_$","typeString":"function (bytes32) view returns (uint192)"}},"id":8287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13902:34:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"nodeType":"VariableDeclarationStatement","src":"13878:58:29"},{"assignments":[8290],"declarations":[{"constant":false,"id":8290,"mutability":"mutable","name":"quorumsToUpdate","nameLocation":"13963:15:29","nodeType":"VariableDeclaration","scope":8302,"src":"13950:28:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8289,"name":"bytes","nodeType":"ElementaryTypeName","src":"13950:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":8295,"initialValue":{"arguments":[{"id":8293,"name":"currentBitmap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8284,"src":"14012:13:29","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint192","typeString":"uint192"}],"expression":{"id":8291,"name":"BitmapUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14393,"src":"13981:11:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BitmapUtils_$14393_$","typeString":"type(library BitmapUtils)"}},"id":8292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"bitmapToBytesArray","nodeType":"MemberAccess","referencedDeclaration":14245,"src":"13981:30:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":8294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13981:45:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"13950:76:29"},{"expression":{"arguments":[{"id":8297,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8266,"src":"14056:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8298,"name":"operatorInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8273,"src":"14066:12:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorInfo_$12360_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorInfo memory"}},{"id":8299,"name":"quorumsToUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8290,"src":"14080:15:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_OperatorInfo_$12360_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorInfo memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8296,"name":"_updateOperator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9030,"src":"14040:15:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_struct$_OperatorInfo_$12360_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,struct IRegistryCoordinator.OperatorInfo memory,bytes memory)"}},"id":8300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14040:56:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8301,"nodeType":"ExpressionStatement","src":"14040:56:29"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8258,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8255,"src":"13593:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":8259,"name":"operators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8248,"src":"13597:9:29","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":8260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"13597:16:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13593:20:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8303,"initializationExpression":{"assignments":[8255],"declarations":[{"constant":false,"id":8255,"mutability":"mutable","name":"i","nameLocation":"13586:1:29","nodeType":"VariableDeclaration","scope":8303,"src":"13578:9:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8254,"name":"uint256","nodeType":"ElementaryTypeName","src":"13578:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8257,"initialValue":{"hexValue":"30","id":8256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13590:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"13578:13:29"},"loopExpression":{"expression":{"id":8263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"13615:3:29","subExpression":{"id":8262,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8255,"src":"13615:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8264,"nodeType":"ExpressionStatement","src":"13615:3:29"},"nodeType":"ForStatement","src":"13573:534:29"}]},"documentation":{"id":8245,"nodeType":"StructuredDocumentation","src":"13176:276:29","text":" @notice Updates the stakes of one or more operators in the StakeRegistry, for each quorum\n the operator is registered for.\n \n If any operator no longer meets the minimum stake required to remain in the quorum,\n they are deregistered."},"functionSelector":"00cf2ab5","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":8251,"name":"PAUSED_UPDATE_OPERATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7782,"src":"13539:22:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":8252,"kind":"modifierInvocation","modifierName":{"id":8250,"name":"onlyWhenNotPaused","nodeType":"IdentifierPath","referencedDeclaration":3956,"src":"13521:17:29"},"nodeType":"ModifierInvocation","src":"13521:41:29"}],"name":"updateOperators","nameLocation":"13466:15:29","parameters":{"id":8249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8248,"mutability":"mutable","name":"operators","nameLocation":"13501:9:29","nodeType":"VariableDeclaration","scope":8305,"src":"13482:28:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":8246,"name":"address","nodeType":"ElementaryTypeName","src":"13482:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8247,"nodeType":"ArrayTypeName","src":"13482:9:29","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"13481:30:29"},"returnParameters":{"id":8253,"nodeType":"ParameterList","parameters":[],"src":"13563:0:29"},"scope":9739,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8477,"nodeType":"FunctionDefinition","src":"15012:2490:29","nodes":[],"body":{"id":8476,"nodeType":"Block","src":"15190:2312:29","nodes":[],"statements":[{"assignments":[8319],"declarations":[{"constant":false,"id":8319,"mutability":"mutable","name":"quorumBitmap","nameLocation":"15208:12:29","nodeType":"VariableDeclaration","scope":8476,"src":"15200:20:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"},"typeName":{"id":8318,"name":"uint192","nodeType":"ElementaryTypeName","src":"15200:7:29","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"visibility":"internal"}],"id":8328,"initialValue":{"arguments":[{"arguments":[{"id":8324,"name":"quorumNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8312,"src":"15269:13:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":8325,"name":"quorumCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7805,"src":"15284:11:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":8322,"name":"BitmapUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14393,"src":"15231:11:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BitmapUtils_$14393_$","typeString":"type(library BitmapUtils)"}},"id":8323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"orderedBytesArrayToBitmap","nodeType":"MemberAccess","referencedDeclaration":14054,"src":"15231:37:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint8_$returns$_t_uint256_$","typeString":"function (bytes memory,uint8) pure returns (uint256)"}},"id":8326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15231:65:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8321,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15223:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_uint192_$","typeString":"type(uint192)"},"typeName":{"id":8320,"name":"uint192","nodeType":"ElementaryTypeName","src":"15223:7:29","typeDescriptions":{}}},"id":8327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15223:74:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"nodeType":"VariableDeclarationStatement","src":"15200:97:29"},{"expression":{"arguments":[{"arguments":[{"id":8331,"name":"quorumBitmap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8319,"src":"15332:12:29","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint192","typeString":"uint192"}],"id":8330,"name":"_quorumsAllExist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9299,"src":"15315:16:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint192_$returns$_t_bool_$","typeString":"function (uint192) view returns (bool)"}},"id":8332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15315:30:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5265676973747279436f6f7264696e61746f722e7570646174654f70657261746f7273466f7251756f72756d3a20736f6d652071756f72756d7320646f206e6f74206578697374","id":8333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15347:73:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_12b3dedb903eb7836d3b441c2476f3a0361c94aa7f2b6d0115e23420c1713463","typeString":"literal_string \"RegistryCoordinator.updateOperatorsForQuorum: some quorums do not exist\""},"value":"RegistryCoordinator.updateOperatorsForQuorum: some quorums do not exist"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_12b3dedb903eb7836d3b441c2476f3a0361c94aa7f2b6d0115e23420c1713463","typeString":"literal_string \"RegistryCoordinator.updateOperatorsForQuorum: some quorums do not exist\""}],"id":8329,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"15307:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15307:114:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8335,"nodeType":"ExpressionStatement","src":"15307:114:29"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8337,"name":"operatorsPerQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8310,"src":"15452:18:29","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_address_$dyn_calldata_ptr_$dyn_calldata_ptr","typeString":"address[] calldata[] calldata"}},"id":8338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"15452:25:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":8339,"name":"quorumNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8312,"src":"15481:13:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":8340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"15481:20:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15452:49:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5265676973747279436f6f7264696e61746f722e7570646174654f70657261746f7273466f7251756f72756d3a20696e707574206c656e677468206d69736d61746368","id":8342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15515:69:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_a303f3cdd1902954cea55e898b49443c1aeaa675c5d0836adda6d975be822439","typeString":"literal_string \"RegistryCoordinator.updateOperatorsForQuorum: input length mismatch\""},"value":"RegistryCoordinator.updateOperatorsForQuorum: input length mismatch"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a303f3cdd1902954cea55e898b49443c1aeaa675c5d0836adda6d975be822439","typeString":"literal_string \"RegistryCoordinator.updateOperatorsForQuorum: input length mismatch\""}],"id":8336,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"15431:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15431:163:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8344,"nodeType":"ExpressionStatement","src":"15431:163:29"},{"body":{"id":8474,"nodeType":"Block","src":"15656:1840:29","statements":[{"assignments":[8357],"declarations":[{"constant":false,"id":8357,"mutability":"mutable","name":"quorumNumber","nameLocation":"15676:12:29","nodeType":"VariableDeclaration","scope":8474,"src":"15670:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":8356,"name":"uint8","nodeType":"ElementaryTypeName","src":"15670:5:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":8364,"initialValue":{"arguments":[{"baseExpression":{"id":8360,"name":"quorumNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8312,"src":"15697:13:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":8362,"indexExpression":{"id":8361,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8346,"src":"15711:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15697:16:29","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"id":8359,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15691:5:29","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":8358,"name":"uint8","nodeType":"ElementaryTypeName","src":"15691:5:29","typeDescriptions":{}}},"id":8363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15691:23:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"15670:44:29"},{"assignments":[8369],"declarations":[{"constant":false,"id":8369,"mutability":"mutable","name":"currQuorumOperators","nameLocation":"15747:19:29","nodeType":"VariableDeclaration","scope":8474,"src":"15728:38:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":8367,"name":"address","nodeType":"ElementaryTypeName","src":"15728:7:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8368,"nodeType":"ArrayTypeName","src":"15728:9:29","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":8373,"initialValue":{"baseExpression":{"id":8370,"name":"operatorsPerQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8310,"src":"15769:18:29","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_address_$dyn_calldata_ptr_$dyn_calldata_ptr","typeString":"address[] calldata[] calldata"}},"id":8372,"indexExpression":{"id":8371,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8346,"src":"15788:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15769:21:29","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"nodeType":"VariableDeclarationStatement","src":"15728:62:29"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8375,"name":"currQuorumOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8369,"src":"15829:19:29","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":8376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"15829:26:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":8379,"name":"quorumNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8357,"src":"15897:12:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":8377,"name":"indexRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7802,"src":"15859:13:29","typeDescriptions":{"typeIdentifier":"t_contract$_IIndexRegistry_$12290","typeString":"contract IIndexRegistry"}},"id":8378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"totalOperatorsForQuorum","nodeType":"MemberAccess","referencedDeclaration":12278,"src":"15859:37:29","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint8_$returns$_t_uint32_$","typeString":"function (uint8) view external returns (uint32)"}},"id":8380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15859:51:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"15829:81:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5265676973747279436f6f7264696e61746f722e7570646174654f70657261746f7273466f7251756f72756d3a206e756d626572206f662075706461746564206f70657261746f727320646f6573206e6f74206d617463682071756f72756d20746f74616c","id":8382,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15928:103:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_8a54223d0a52a422543383c094f944368878927eebcbbafea48472f20502ed0f","typeString":"literal_string \"RegistryCoordinator.updateOperatorsForQuorum: number of updated operators does not match quorum total\""},"value":"RegistryCoordinator.updateOperatorsForQuorum: number of updated operators does not match quorum total"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8a54223d0a52a422543383c094f944368878927eebcbbafea48472f20502ed0f","typeString":"literal_string \"RegistryCoordinator.updateOperatorsForQuorum: number of updated operators does not match quorum total\""}],"id":8374,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"15804:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15804:241:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8384,"nodeType":"ExpressionStatement","src":"15804:241:29"},{"assignments":[8386],"declarations":[{"constant":false,"id":8386,"mutability":"mutable","name":"prevOperatorAddress","nameLocation":"16067:19:29","nodeType":"VariableDeclaration","scope":8474,"src":"16059:27:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8385,"name":"address","nodeType":"ElementaryTypeName","src":"16059:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":8391,"initialValue":{"arguments":[{"hexValue":"30","id":8389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16097:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8388,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16089:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8387,"name":"address","nodeType":"ElementaryTypeName","src":"16089:7:29","typeDescriptions":{}}},"id":8390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16089:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"16059:40:29"},{"body":{"id":8459,"nodeType":"Block","src":"16232:1025:29","statements":[{"assignments":[8404],"declarations":[{"constant":false,"id":8404,"mutability":"mutable","name":"operator","nameLocation":"16258:8:29","nodeType":"VariableDeclaration","scope":8459,"src":"16250:16:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8403,"name":"address","nodeType":"ElementaryTypeName","src":"16250:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":8408,"initialValue":{"baseExpression":{"id":8405,"name":"currQuorumOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8369,"src":"16269:19:29","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":8407,"indexExpression":{"id":8406,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8393,"src":"16289:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16269:22:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"16250:41:29"},{"assignments":[8411],"declarations":[{"constant":false,"id":8411,"mutability":"mutable","name":"operatorInfo","nameLocation":"16329:12:29","nodeType":"VariableDeclaration","scope":8459,"src":"16309:32:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorInfo_$12360_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorInfo"},"typeName":{"id":8410,"nodeType":"UserDefinedTypeName","pathNode":{"id":8409,"name":"OperatorInfo","nodeType":"IdentifierPath","referencedDeclaration":12360,"src":"16309:12:29"},"referencedDeclaration":12360,"src":"16309:12:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorInfo_$12360_storage_ptr","typeString":"struct IRegistryCoordinator.OperatorInfo"}},"visibility":"internal"}],"id":8415,"initialValue":{"baseExpression":{"id":8412,"name":"_operatorInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7824,"src":"16344:13:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_OperatorInfo_$12360_storage_$","typeString":"mapping(address => struct IRegistryCoordinator.OperatorInfo storage ref)"}},"id":8414,"indexExpression":{"id":8413,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8404,"src":"16358:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16344:23:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorInfo_$12360_storage","typeString":"struct IRegistryCoordinator.OperatorInfo storage ref"}},"nodeType":"VariableDeclarationStatement","src":"16309:58:29"},{"assignments":[8417],"declarations":[{"constant":false,"id":8417,"mutability":"mutable","name":"operatorId","nameLocation":"16393:10:29","nodeType":"VariableDeclaration","scope":8459,"src":"16385:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8416,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16385:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":8420,"initialValue":{"expression":{"id":8418,"name":"operatorInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8411,"src":"16406:12:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorInfo_$12360_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorInfo memory"}},"id":8419,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"operatorId","nodeType":"MemberAccess","referencedDeclaration":12356,"src":"16406:23:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"16385:44:29"},{"id":8443,"nodeType":"Block","src":"16447:669:29","statements":[{"assignments":[8422],"declarations":[{"constant":false,"id":8422,"mutability":"mutable","name":"currentBitmap","nameLocation":"16477:13:29","nodeType":"VariableDeclaration","scope":8443,"src":"16469:21:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"},"typeName":{"id":8421,"name":"uint192","nodeType":"ElementaryTypeName","src":"16469:7:29","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"visibility":"internal"}],"id":8426,"initialValue":{"arguments":[{"id":8424,"name":"operatorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8417,"src":"16516:10:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8423,"name":"_currentOperatorBitmap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9332,"src":"16493:22:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_uint192_$","typeString":"function (bytes32) view returns (uint192)"}},"id":8425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16493:34:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"nodeType":"VariableDeclarationStatement","src":"16469:58:29"},{"expression":{"arguments":[{"arguments":[{"id":8430,"name":"currentBitmap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8422,"src":"16600:13:29","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},{"id":8431,"name":"quorumNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8357,"src":"16615:12:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint192","typeString":"uint192"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":8428,"name":"BitmapUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14393,"src":"16582:11:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BitmapUtils_$14393_$","typeString":"type(library BitmapUtils)"}},"id":8429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isSet","nodeType":"MemberAccess","referencedDeclaration":14296,"src":"16582:17:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint8_$returns$_t_bool_$","typeString":"function (uint256,uint8) pure returns (bool)"}},"id":8432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16582:46:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5265676973747279436f6f7264696e61746f722e7570646174654f70657261746f7273466f7251756f72756d3a206f70657261746f72206e6f7420696e2071756f72756d","id":8433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16654:70:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_2d1719ad57a073256f4175187ddbb1a7c30b4b36b4d18c94e38a5c84b77b3619","typeString":"literal_string \"RegistryCoordinator.updateOperatorsForQuorum: operator not in quorum\""},"value":"RegistryCoordinator.updateOperatorsForQuorum: operator not in quorum"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2d1719ad57a073256f4175187ddbb1a7c30b4b36b4d18c94e38a5c84b77b3619","typeString":"literal_string \"RegistryCoordinator.updateOperatorsForQuorum: operator not in quorum\""}],"id":8427,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"16549:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16549:197:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8435,"nodeType":"ExpressionStatement","src":"16549:197:29"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8437,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8404,"src":"16914:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":8438,"name":"prevOperatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8386,"src":"16925:19:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16914:30:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5265676973747279436f6f7264696e61746f722e7570646174654f70657261746f7273466f7251756f72756d3a206f70657261746f7273206172726179206d75737420626520736f7274656420696e20617363656e64696e672061646472657373206f72646572","id":8440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16970:105:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad3e231d7c76703757c5246bc4f2b419ba8a71f78bc390d97416312a24734e1f","typeString":"literal_string \"RegistryCoordinator.updateOperatorsForQuorum: operators array must be sorted in ascending address order\""},"value":"RegistryCoordinator.updateOperatorsForQuorum: operators array must be sorted in ascending address order"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ad3e231d7c76703757c5246bc4f2b419ba8a71f78bc390d97416312a24734e1f","typeString":"literal_string \"RegistryCoordinator.updateOperatorsForQuorum: operators array must be sorted in ascending address order\""}],"id":8436,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"16881:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16881:216:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8442,"nodeType":"ExpressionStatement","src":"16881:216:29"}]},{"expression":{"arguments":[{"id":8445,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8404,"src":"17149:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8446,"name":"operatorInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8411,"src":"17159:12:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorInfo_$12360_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorInfo memory"}},{"baseExpression":{"id":8447,"name":"quorumNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8312,"src":"17173:13:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8449,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8346,"src":"17189:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":8450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17191:1:29","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"17189:3:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"17173:20:29","startExpression":{"id":8448,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8346,"src":"17187:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_OperatorInfo_$12360_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorInfo memory"},{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":8444,"name":"_updateOperator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9030,"src":"17133:15:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_struct$_OperatorInfo_$12360_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,struct IRegistryCoordinator.OperatorInfo memory,bytes memory)"}},"id":8453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17133:61:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8454,"nodeType":"ExpressionStatement","src":"17133:61:29"},{"expression":{"id":8457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8455,"name":"prevOperatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8386,"src":"17212:19:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8456,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8404,"src":"17234:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17212:30:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8458,"nodeType":"ExpressionStatement","src":"17212:30:29"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8396,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8393,"src":"16195:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":8397,"name":"currQuorumOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8369,"src":"16199:19:29","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":8398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"16199:26:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16195:30:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8460,"initializationExpression":{"assignments":[8393],"declarations":[{"constant":false,"id":8393,"mutability":"mutable","name":"j","nameLocation":"16188:1:29","nodeType":"VariableDeclaration","scope":8460,"src":"16180:9:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8392,"name":"uint256","nodeType":"ElementaryTypeName","src":"16180:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8395,"initialValue":{"hexValue":"30","id":8394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16192:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"16180:13:29"},"loopExpression":{"expression":{"id":8401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"16227:3:29","subExpression":{"id":8400,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8393,"src":"16229:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8402,"nodeType":"ExpressionStatement","src":"16227:3:29"},"nodeType":"ForStatement","src":"16175:1082:29"},{"expression":{"id":8466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8461,"name":"quorumUpdateBlockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7834,"src":"17362:23:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint256_$","typeString":"mapping(uint8 => uint256)"}},"id":8463,"indexExpression":{"id":8462,"name":"quorumNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8357,"src":"17386:12:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17362:37:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":8464,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"17402:5:29","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":8465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","src":"17402:12:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17362:52:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8467,"nodeType":"ExpressionStatement","src":"17362:52:29"},{"eventCall":{"arguments":[{"id":8469,"name":"quorumNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8357,"src":"17458:12:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"id":8470,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"17472:5:29","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":8471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","src":"17472:12:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8468,"name":"QuorumBlockNumberUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12350,"src":"17433:24:29","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$_t_uint256_$returns$__$","typeString":"function (uint8,uint256)"}},"id":8472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17433:52:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8473,"nodeType":"EmitStatement","src":"17428:57:29"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8349,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8346,"src":"15625:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":8350,"name":"quorumNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8312,"src":"15629:13:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":8351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"15629:20:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15625:24:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8475,"initializationExpression":{"assignments":[8346],"declarations":[{"constant":false,"id":8346,"mutability":"mutable","name":"i","nameLocation":"15618:1:29","nodeType":"VariableDeclaration","scope":8475,"src":"15610:9:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8345,"name":"uint256","nodeType":"ElementaryTypeName","src":"15610:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8348,"initialValue":{"hexValue":"30","id":8347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15622:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"15610:13:29"},"loopExpression":{"expression":{"id":8354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"15651:3:29","subExpression":{"id":8353,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8346,"src":"15653:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8355,"nodeType":"ExpressionStatement","src":"15651:3:29"},"nodeType":"ForStatement","src":"15605:1891:29"}]},"documentation":{"id":8306,"nodeType":"StructuredDocumentation","src":"14119:888:29","text":" @notice Updates the stakes of all operators for each of the specified quorums in the StakeRegistry. Each quorum also\n has their quorumUpdateBlockNumber updated. which is meant to keep track of when operators were last all updated at once.\n @param operatorsPerQuorum is an array of arrays of operators to update for each quorum. Note that each nested array\n of operators must be sorted in ascending address order to ensure that all operators in the quorum are updated\n @param quorumNumbers is an array of quorum numbers to update\n @dev This method is used to update the stakes of all operators in a quorum at once, rather than individually. Performs\n sanitization checks on the input array lengths, quorumNumbers existing, and that quorumNumbers are ordered. Function must\n also not be paused by the PAUSED_UPDATE_OPERATOR flag."},"functionSelector":"5140a548","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":8315,"name":"PAUSED_UPDATE_OPERATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7782,"src":"15166:22:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":8316,"kind":"modifierInvocation","modifierName":{"id":8314,"name":"onlyWhenNotPaused","nodeType":"IdentifierPath","referencedDeclaration":3956,"src":"15148:17:29"},"nodeType":"ModifierInvocation","src":"15148:41:29"}],"name":"updateOperatorsForQuorum","nameLocation":"15021:24:29","parameters":{"id":8313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8310,"mutability":"mutable","name":"operatorsPerQuorum","nameLocation":"15076:18:29","nodeType":"VariableDeclaration","scope":8477,"src":"15055:39:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_address_$dyn_calldata_ptr_$dyn_calldata_ptr","typeString":"address[][]"},"typeName":{"baseType":{"baseType":{"id":8307,"name":"address","nodeType":"ElementaryTypeName","src":"15055:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8308,"nodeType":"ArrayTypeName","src":"15055:9:29","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"id":8309,"nodeType":"ArrayTypeName","src":"15055:11:29","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_address_$dyn_storage_$dyn_storage_ptr","typeString":"address[][]"}},"visibility":"internal"},{"constant":false,"id":8312,"mutability":"mutable","name":"quorumNumbers","nameLocation":"15119:13:29","nodeType":"VariableDeclaration","scope":8477,"src":"15104:28:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":8311,"name":"bytes","nodeType":"ElementaryTypeName","src":"15104:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"15045:93:29"},"returnParameters":{"id":8317,"nodeType":"ParameterList","parameters":[],"src":"15190:0:29"},"scope":9739,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8505,"nodeType":"FunctionDefinition","src":"17668:285:29","nodes":[],"body":{"id":8504,"nodeType":"Block","src":"17721:232:29","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_OperatorStatus_$12354","typeString":"enum IRegistryCoordinator.OperatorStatus"},"id":8491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":8484,"name":"_operatorInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7824,"src":"17739:13:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_OperatorInfo_$12360_storage_$","typeString":"mapping(address => struct IRegistryCoordinator.OperatorInfo storage ref)"}},"id":8487,"indexExpression":{"expression":{"id":8485,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17753:3:29","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"17753:10:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17739:25:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorInfo_$12360_storage","typeString":"struct IRegistryCoordinator.OperatorInfo storage ref"}},"id":8488,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"status","nodeType":"MemberAccess","referencedDeclaration":12359,"src":"17739:32:29","typeDescriptions":{"typeIdentifier":"t_enum$_OperatorStatus_$12354","typeString":"enum IRegistryCoordinator.OperatorStatus"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":8489,"name":"OperatorStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12354,"src":"17775:14:29","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_OperatorStatus_$12354_$","typeString":"type(enum IRegistryCoordinator.OperatorStatus)"}},"id":8490,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"REGISTERED","nodeType":"MemberAccess","referencedDeclaration":12352,"src":"17775:25:29","typeDescriptions":{"typeIdentifier":"t_enum$_OperatorStatus_$12354","typeString":"enum IRegistryCoordinator.OperatorStatus"}},"src":"17739:61:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5265676973747279436f6f7264696e61746f722e757064617465536f636b65743a206f70657261746f72206973206e6f742072656769737465726564","id":8492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17802:62:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_e549bc8f01e7da86f29b46ea321df9e2666fbddfdd4ed6cea56157bb65fa2912","typeString":"literal_string \"RegistryCoordinator.updateSocket: operator is not registered\""},"value":"RegistryCoordinator.updateSocket: operator is not registered"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e549bc8f01e7da86f29b46ea321df9e2666fbddfdd4ed6cea56157bb65fa2912","typeString":"literal_string \"RegistryCoordinator.updateSocket: operator is not registered\""}],"id":8483,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"17731:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17731:134:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8494,"nodeType":"ExpressionStatement","src":"17731:134:29"},{"eventCall":{"arguments":[{"expression":{"baseExpression":{"id":8496,"name":"_operatorInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7824,"src":"17901:13:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_OperatorInfo_$12360_storage_$","typeString":"mapping(address => struct IRegistryCoordinator.OperatorInfo storage ref)"}},"id":8499,"indexExpression":{"expression":{"id":8497,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17915:3:29","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"17915:10:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17901:25:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorInfo_$12360_storage","typeString":"struct IRegistryCoordinator.OperatorInfo storage ref"}},"id":8500,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"operatorId","nodeType":"MemberAccess","referencedDeclaration":12356,"src":"17901:36:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8501,"name":"socket","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8480,"src":"17939:6:29","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":8495,"name":"OperatorSocketUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12600,"src":"17880:20:29","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes32,string memory)"}},"id":8502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17880:66:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8503,"nodeType":"EmitStatement","src":"17875:71:29"}]},"baseFunctions":[12606],"documentation":{"id":8478,"nodeType":"StructuredDocumentation","src":"17508:155:29","text":" @notice Updates the socket of the msg.sender given they are a registered operator\n @param socket is the new socket of the operator"},"functionSelector":"0cf4b767","implemented":true,"kind":"function","modifiers":[],"name":"updateSocket","nameLocation":"17677:12:29","parameters":{"id":8481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8480,"mutability":"mutable","name":"socket","nameLocation":"17704:6:29","nodeType":"VariableDeclaration","scope":8505,"src":"17690:20:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8479,"name":"string","nodeType":"ElementaryTypeName","src":"17690:6:29","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"17689:22:29"},"returnParameters":{"id":8482,"nodeType":"ParameterList","parameters":[],"src":"17721:0:29"},"scope":9739,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8521,"nodeType":"FunctionDefinition","src":"18412:238:29","nodes":[],"body":{"id":8520,"nodeType":"Block","src":"18527:123:29","nodes":[],"statements":[{"expression":{"arguments":[{"id":8516,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8508,"src":"18581:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8517,"name":"quorumNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8510,"src":"18619:13:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":8515,"name":"_deregisterOperator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8982,"src":"18537:19:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":8518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["operator","quorumNumbers"],"nodeType":"FunctionCall","src":"18537:106:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8519,"nodeType":"ExpressionStatement","src":"18537:106:29"}]},"baseFunctions":[12417],"documentation":{"id":8506,"nodeType":"StructuredDocumentation","src":"18187:220:29","text":" @notice Ejects the provided operator from the provided quorums from the AVS\n @param operator is the operator to eject\n @param quorumNumbers are the quorum numbers to eject the operator from"},"functionSelector":"6e3b17db","implemented":true,"kind":"function","modifiers":[{"id":8513,"kind":"modifierInvocation","modifierName":{"id":8512,"name":"onlyEjector","nodeType":"IdentifierPath","referencedDeclaration":7856,"src":"18515:11:29"},"nodeType":"ModifierInvocation","src":"18515:11:29"}],"name":"ejectOperator","nameLocation":"18421:13:29","parameters":{"id":8511,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8508,"mutability":"mutable","name":"operator","nameLocation":"18452:8:29","nodeType":"VariableDeclaration","scope":8521,"src":"18444:16:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8507,"name":"address","nodeType":"ElementaryTypeName","src":"18444:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8510,"mutability":"mutable","name":"quorumNumbers","nameLocation":"18486:13:29","nodeType":"VariableDeclaration","scope":8521,"src":"18471:28:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":8509,"name":"bytes","nodeType":"ElementaryTypeName","src":"18471:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"18434:71:29"},"returnParameters":{"id":8514,"nodeType":"ParameterList","parameters":[],"src":"18527:0:29"},"scope":9739,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8543,"nodeType":"FunctionDefinition","src":"18975:277:29","nodes":[],"body":{"id":8542,"nodeType":"Block","src":"19173:79:29","nodes":[],"statements":[{"expression":{"arguments":[{"id":8537,"name":"operatorSetParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8525,"src":"19197:17:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorSetParam_$12374_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorSetParam memory"}},{"id":8538,"name":"minimumStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8527,"src":"19216:12:29","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},{"id":8539,"name":"strategyParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8531,"src":"19230:14:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StrategyParams_$12632_memory_ptr_$dyn_memory_ptr","typeString":"struct IStakeRegistry.StrategyParams memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_OperatorSetParam_$12374_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorSetParam memory"},{"typeIdentifier":"t_uint96","typeString":"uint96"},{"typeIdentifier":"t_array$_t_struct$_StrategyParams_$12632_memory_ptr_$dyn_memory_ptr","typeString":"struct IStakeRegistry.StrategyParams memory[] memory"}],"id":8536,"name":"_createQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9183,"src":"19183:13:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_OperatorSetParam_$12374_memory_ptr_$_t_uint96_$_t_array$_t_struct$_StrategyParams_$12632_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct IRegistryCoordinator.OperatorSetParam memory,uint96,struct IStakeRegistry.StrategyParams memory[] memory)"}},"id":8540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19183:62:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8541,"nodeType":"ExpressionStatement","src":"19183:62:29"}]},"documentation":{"id":8522,"nodeType":"StructuredDocumentation","src":"18882:88:29","text":" @notice Creates a quorum and initializes it in each registry contract"},"functionSelector":"d75b4c88","implemented":true,"kind":"function","modifiers":[{"id":8534,"kind":"modifierInvocation","modifierName":{"id":8533,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":46922,"src":"19163:9:29"},"nodeType":"ModifierInvocation","src":"19163:9:29"}],"name":"createQuorum","nameLocation":"18984:12:29","parameters":{"id":8532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8525,"mutability":"mutable","name":"operatorSetParams","nameLocation":"19030:17:29","nodeType":"VariableDeclaration","scope":8543,"src":"19006:41:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorSetParam_$12374_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorSetParam"},"typeName":{"id":8524,"nodeType":"UserDefinedTypeName","pathNode":{"id":8523,"name":"OperatorSetParam","nodeType":"IdentifierPath","referencedDeclaration":12374,"src":"19006:16:29"},"referencedDeclaration":12374,"src":"19006:16:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorSetParam_$12374_storage_ptr","typeString":"struct IRegistryCoordinator.OperatorSetParam"}},"visibility":"internal"},{"constant":false,"id":8527,"mutability":"mutable","name":"minimumStake","nameLocation":"19064:12:29","nodeType":"VariableDeclaration","scope":8543,"src":"19057:19:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":8526,"name":"uint96","nodeType":"ElementaryTypeName","src":"19057:6:29","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"},{"constant":false,"id":8531,"mutability":"mutable","name":"strategyParams","nameLocation":"19125:14:29","nodeType":"VariableDeclaration","scope":8543,"src":"19086:53:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StrategyParams_$12632_memory_ptr_$dyn_memory_ptr","typeString":"struct IStakeRegistry.StrategyParams[]"},"typeName":{"baseType":{"id":8529,"nodeType":"UserDefinedTypeName","pathNode":{"id":8528,"name":"IStakeRegistry.StrategyParams","nodeType":"IdentifierPath","referencedDeclaration":12632,"src":"19086:29:29"},"referencedDeclaration":12632,"src":"19086:29:29","typeDescriptions":{"typeIdentifier":"t_struct$_StrategyParams_$12632_storage_ptr","typeString":"struct IStakeRegistry.StrategyParams"}},"id":8530,"nodeType":"ArrayTypeName","src":"19086:31:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StrategyParams_$12632_storage_$dyn_storage_ptr","typeString":"struct IStakeRegistry.StrategyParams[]"}},"visibility":"internal"}],"src":"18996:149:29"},"returnParameters":{"id":8535,"nodeType":"ParameterList","parameters":[],"src":"19173:0:29"},"scope":9739,"stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"id":8563,"nodeType":"FunctionDefinition","src":"19549:233:29","nodes":[],"body":{"id":8562,"nodeType":"Block","src":"19711:71:29","nodes":[],"statements":[{"expression":{"arguments":[{"id":8558,"name":"quorumNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8546,"src":"19743:12:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":8559,"name":"operatorSetParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8549,"src":"19757:17:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorSetParam_$12374_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorSetParam memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_struct$_OperatorSetParam_$12374_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorSetParam memory"}],"id":8557,"name":"_setOperatorSetParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9352,"src":"19721:21:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint8_$_t_struct$_OperatorSetParam_$12374_memory_ptr_$returns$__$","typeString":"function (uint8,struct IRegistryCoordinator.OperatorSetParam memory)"}},"id":8560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19721:54:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8561,"nodeType":"ExpressionStatement","src":"19721:54:29"}]},"documentation":{"id":8544,"nodeType":"StructuredDocumentation","src":"19258:286:29","text":" @notice Updates a quorum's OperatorSetParams\n @param quorumNumber is the quorum number to set the maximum number of operators for\n @param operatorSetParams is the parameters of the operator set for the `quorumNumber`\n @dev only callable by the owner"},"functionSelector":"5b0b829f","implemented":true,"kind":"function","modifiers":[{"id":8552,"kind":"modifierInvocation","modifierName":{"id":8551,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":46922,"src":"19674:9:29"},"nodeType":"ModifierInvocation","src":"19674:9:29"},{"arguments":[{"id":8554,"name":"quorumNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8546,"src":"19697:12:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":8555,"kind":"modifierInvocation","modifierName":{"id":8553,"name":"quorumExists","nodeType":"IdentifierPath","referencedDeclaration":7869,"src":"19684:12:29"},"nodeType":"ModifierInvocation","src":"19684:26:29"}],"name":"setOperatorSetParams","nameLocation":"19558:20:29","parameters":{"id":8550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8546,"mutability":"mutable","name":"quorumNumber","nameLocation":"19594:12:29","nodeType":"VariableDeclaration","scope":8563,"src":"19588:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":8545,"name":"uint8","nodeType":"ElementaryTypeName","src":"19588:5:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":8549,"mutability":"mutable","name":"operatorSetParams","nameLocation":"19641:17:29","nodeType":"VariableDeclaration","scope":8563,"src":"19617:41:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorSetParam_$12374_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorSetParam"},"typeName":{"id":8548,"nodeType":"UserDefinedTypeName","pathNode":{"id":8547,"name":"OperatorSetParam","nodeType":"IdentifierPath","referencedDeclaration":12374,"src":"19617:16:29"},"referencedDeclaration":12374,"src":"19617:16:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorSetParam_$12374_storage_ptr","typeString":"struct IRegistryCoordinator.OperatorSetParam"}},"visibility":"internal"}],"src":"19578:86:29"},"returnParameters":{"id":8556,"nodeType":"ParameterList","parameters":[],"src":"19711:0:29"},"scope":9739,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8576,"nodeType":"FunctionDefinition","src":"19946:119:29","nodes":[],"body":{"id":8575,"nodeType":"Block","src":"20015:50:29","nodes":[],"statements":[{"expression":{"arguments":[{"id":8572,"name":"_churnApprover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8566,"src":"20043:14:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8571,"name":"_setChurnApprover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9367,"src":"20025:17:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":8573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20025:33:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8574,"nodeType":"ExpressionStatement","src":"20025:33:29"}]},"documentation":{"id":8564,"nodeType":"StructuredDocumentation","src":"19788:153:29","text":" @notice Sets the churnApprover\n @param _churnApprover is the address of the churnApprover\n @dev only callable by the owner"},"functionSelector":"29d1e0c3","implemented":true,"kind":"function","modifiers":[{"id":8569,"kind":"modifierInvocation","modifierName":{"id":8568,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":46922,"src":"20005:9:29"},"nodeType":"ModifierInvocation","src":"20005:9:29"}],"name":"setChurnApprover","nameLocation":"19955:16:29","parameters":{"id":8567,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8566,"mutability":"mutable","name":"_churnApprover","nameLocation":"19980:14:29","nodeType":"VariableDeclaration","scope":8576,"src":"19972:22:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8565,"name":"address","nodeType":"ElementaryTypeName","src":"19972:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19971:24:29"},"returnParameters":{"id":8570,"nodeType":"ParameterList","parameters":[],"src":"20015:0:29"},"scope":9739,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8589,"nodeType":"FunctionDefinition","src":"20211:95:29","nodes":[],"body":{"id":8588,"nodeType":"Block","src":"20268:38:29","nodes":[],"statements":[{"expression":{"arguments":[{"id":8585,"name":"_ejector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8579,"src":"20290:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8584,"name":"_setEjector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9382,"src":"20278:11:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":8586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20278:21:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8587,"nodeType":"ExpressionStatement","src":"20278:21:29"}]},"documentation":{"id":8577,"nodeType":"StructuredDocumentation","src":"20071:135:29","text":" @notice Sets the ejector\n @param _ejector is the address of the ejector\n @dev only callable by the owner"},"functionSelector":"2cdd1e86","implemented":true,"kind":"function","modifiers":[{"id":8582,"kind":"modifierInvocation","modifierName":{"id":8581,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":46922,"src":"20258:9:29"},"nodeType":"ModifierInvocation","src":"20258:9:29"}],"name":"setEjector","nameLocation":"20220:10:29","parameters":{"id":8580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8579,"mutability":"mutable","name":"_ejector","nameLocation":"20239:8:29","nodeType":"VariableDeclaration","scope":8589,"src":"20231:16:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8578,"name":"address","nodeType":"ElementaryTypeName","src":"20231:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20230:18:29"},"returnParameters":{"id":8583,"nodeType":"ParameterList","parameters":[],"src":"20268:0:29"},"scope":9739,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8599,"nodeType":"StructDefinition","src":"20530:133:29","nodes":[],"canonicalName":"RegistryCoordinator.RegisterResults","members":[{"constant":false,"id":8592,"mutability":"mutable","name":"numOperatorsPerQuorum","nameLocation":"20572:21:29","nodeType":"VariableDeclaration","scope":8599,"src":"20563:30:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_storage_ptr","typeString":"uint32[]"},"typeName":{"baseType":{"id":8590,"name":"uint32","nodeType":"ElementaryTypeName","src":"20563:6:29","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":8591,"nodeType":"ArrayTypeName","src":"20563:8:29","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_storage_ptr","typeString":"uint32[]"}},"visibility":"internal"},{"constant":false,"id":8595,"mutability":"mutable","name":"operatorStakes","nameLocation":"20612:14:29","nodeType":"VariableDeclaration","scope":8599,"src":"20603:23:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint96_$dyn_storage_ptr","typeString":"uint96[]"},"typeName":{"baseType":{"id":8593,"name":"uint96","nodeType":"ElementaryTypeName","src":"20603:6:29","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"id":8594,"nodeType":"ArrayTypeName","src":"20603:8:29","typeDescriptions":{"typeIdentifier":"t_array$_t_uint96_$dyn_storage_ptr","typeString":"uint96[]"}},"visibility":"internal"},{"constant":false,"id":8598,"mutability":"mutable","name":"totalStakes","nameLocation":"20645:11:29","nodeType":"VariableDeclaration","scope":8599,"src":"20636:20:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint96_$dyn_storage_ptr","typeString":"uint96[]"},"typeName":{"baseType":{"id":8596,"name":"uint96","nodeType":"ElementaryTypeName","src":"20636:6:29","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"id":8597,"nodeType":"ArrayTypeName","src":"20636:8:29","typeDescriptions":{"typeIdentifier":"t_array$_t_uint96_$dyn_storage_ptr","typeString":"uint96[]"}},"visibility":"internal"}],"name":"RegisterResults","nameLocation":"20537:15:29","scope":9739,"visibility":"public"},{"id":8743,"nodeType":"FunctionDefinition","src":"20865:2544:29","nodes":[],"body":{"id":8742,"nodeType":"Block","src":"21140:2269:29","nodes":[],"statements":[{"assignments":[8619],"declarations":[{"constant":false,"id":8619,"mutability":"mutable","name":"quorumsToAdd","nameLocation":"21501:12:29","nodeType":"VariableDeclaration","scope":8742,"src":"21493:20:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"},"typeName":{"id":8618,"name":"uint192","nodeType":"ElementaryTypeName","src":"21493:7:29","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"visibility":"internal"}],"documentation":" Get bitmap of quorums to register for and operator's current bitmap. Validate that:\n - we're trying to register for at least 1 quorum\n - the operator is not currently registered for any quorums we're registering for\n Then, calculate the operator's new bitmap after registration","id":8628,"initialValue":{"arguments":[{"arguments":[{"id":8624,"name":"quorumNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8606,"src":"21562:13:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":8625,"name":"quorumCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7805,"src":"21577:11:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":8622,"name":"BitmapUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14393,"src":"21524:11:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BitmapUtils_$14393_$","typeString":"type(library BitmapUtils)"}},"id":8623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"orderedBytesArrayToBitmap","nodeType":"MemberAccess","referencedDeclaration":14054,"src":"21524:37:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint8_$returns$_t_uint256_$","typeString":"function (bytes memory,uint8) pure returns (uint256)"}},"id":8626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21524:65:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8621,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21516:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_uint192_$","typeString":"type(uint192)"},"typeName":{"id":8620,"name":"uint192","nodeType":"ElementaryTypeName","src":"21516:7:29","typeDescriptions":{}}},"id":8627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21516:74:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"nodeType":"VariableDeclarationStatement","src":"21493:97:29"},{"assignments":[8630],"declarations":[{"constant":false,"id":8630,"mutability":"mutable","name":"currentBitmap","nameLocation":"21608:13:29","nodeType":"VariableDeclaration","scope":8742,"src":"21600:21:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"},"typeName":{"id":8629,"name":"uint192","nodeType":"ElementaryTypeName","src":"21600:7:29","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"visibility":"internal"}],"id":8634,"initialValue":{"arguments":[{"id":8632,"name":"operatorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8604,"src":"21647:10:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8631,"name":"_currentOperatorBitmap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9332,"src":"21624:22:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_uint192_$","typeString":"function (bytes32) view returns (uint192)"}},"id":8633,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21624:34:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"nodeType":"VariableDeclarationStatement","src":"21600:58:29"},{"expression":{"arguments":[{"id":8639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"21676:23:29","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":8636,"name":"quorumsToAdd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8619,"src":"21677:12:29","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"id":8637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isEmpty","nodeType":"MemberAccess","referencedDeclaration":14327,"src":"21677:20:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$","typeString":"function (uint256) pure returns (bool)"}},"id":8638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21677:22:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5265676973747279436f6f7264696e61746f722e5f72656769737465724f70657261746f723a206269746d61702063616e6e6f742062652030","id":8640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21701:59:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_51be1cca7734847ab31798e5dc739a78b58e43a769df5855bbdb1fb60570605e","typeString":"literal_string \"RegistryCoordinator._registerOperator: bitmap cannot be 0\""},"value":"RegistryCoordinator._registerOperator: bitmap cannot be 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_51be1cca7734847ab31798e5dc739a78b58e43a769df5855bbdb1fb60570605e","typeString":"literal_string \"RegistryCoordinator._registerOperator: bitmap cannot be 0\""}],"id":8635,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"21668:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21668:93:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8642,"nodeType":"ExpressionStatement","src":"21668:93:29"},{"expression":{"arguments":[{"arguments":[{"id":8645,"name":"quorumsToAdd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8619,"src":"21796:12:29","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint192","typeString":"uint192"}],"id":8644,"name":"_quorumsAllExist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9299,"src":"21779:16:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint192_$returns$_t_bool_$","typeString":"function (uint192) view returns (bool)"}},"id":8646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21779:30:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5265676973747279436f6f7264696e61746f722e5f72656769737465724f70657261746f723a20736f6d652071756f72756d7320646f206e6f74206578697374","id":8647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21811:66:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_6c18e2c444df60c632b7f233fa35bf7bb740bfe79e1110c496c648901dc89a3e","typeString":"literal_string \"RegistryCoordinator._registerOperator: some quorums do not exist\""},"value":"RegistryCoordinator._registerOperator: some quorums do not exist"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6c18e2c444df60c632b7f233fa35bf7bb740bfe79e1110c496c648901dc89a3e","typeString":"literal_string \"RegistryCoordinator._registerOperator: some quorums do not exist\""}],"id":8643,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"21771:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21771:107:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8649,"nodeType":"ExpressionStatement","src":"21771:107:29"},{"expression":{"arguments":[{"arguments":[{"id":8653,"name":"currentBitmap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8630,"src":"21924:13:29","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint192","typeString":"uint192"}],"expression":{"id":8651,"name":"quorumsToAdd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8619,"src":"21896:12:29","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"id":8652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"noBitsInCommon","nodeType":"MemberAccess","referencedDeclaration":14344,"src":"21896:27:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (bool)"}},"id":8654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21896:42:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5265676973747279436f6f7264696e61746f722e5f72656769737465724f70657261746f723a206f70657261746f7220616c7265616479207265676973746572656420666f7220736f6d652071756f72756d73206265696e67207265676973746572656420666f72","id":8655,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21940:106:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_caca58dda628b857dc999add09b88f1707097005ccc45c70c3bbc77f85c83601","typeString":"literal_string \"RegistryCoordinator._registerOperator: operator already registered for some quorums being registered for\""},"value":"RegistryCoordinator._registerOperator: operator already registered for some quorums being registered for"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_caca58dda628b857dc999add09b88f1707097005ccc45c70c3bbc77f85c83601","typeString":"literal_string \"RegistryCoordinator._registerOperator: operator already registered for some quorums being registered for\""}],"id":8650,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"21888:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21888:159:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8657,"nodeType":"ExpressionStatement","src":"21888:159:29"},{"assignments":[8659],"declarations":[{"constant":false,"id":8659,"mutability":"mutable","name":"newBitmap","nameLocation":"22065:9:29","nodeType":"VariableDeclaration","scope":8742,"src":"22057:17:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"},"typeName":{"id":8658,"name":"uint192","nodeType":"ElementaryTypeName","src":"22057:7:29","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"visibility":"internal"}],"id":8667,"initialValue":{"arguments":[{"arguments":[{"id":8664,"name":"quorumsToAdd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8619,"src":"22104:12:29","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint192","typeString":"uint192"}],"expression":{"id":8662,"name":"currentBitmap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8630,"src":"22085:13:29","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"id":8663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"plus","nodeType":"MemberAccess","referencedDeclaration":14376,"src":"22085:18:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":8665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22085:32:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8661,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22077:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_uint192_$","typeString":"type(uint192)"},"typeName":{"id":8660,"name":"uint192","nodeType":"ElementaryTypeName","src":"22077:7:29","typeDescriptions":{}}},"id":8666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22077:41:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"nodeType":"VariableDeclarationStatement","src":"22057:61:29"},{"documentation":" Update operator's bitmap, socket, and status. Only update operatorInfo if needed:\n if we're `REGISTERED`, the operatorId and status are already correct.","expression":{"arguments":[{"id":8669,"name":"operatorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8604,"src":"22375:10:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8670,"name":"newBitmap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8659,"src":"22410:9:29","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint192","typeString":"uint192"}],"id":8668,"name":"_updateOperatorBitmap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9273,"src":"22327:21:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint192_$returns$__$","typeString":"function (bytes32,uint192)"}},"id":8671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["operatorId","newBitmap"],"nodeType":"FunctionCall","src":"22327:103:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8672,"nodeType":"ExpressionStatement","src":"22327:103:29"},{"eventCall":{"arguments":[{"id":8674,"name":"operatorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8604,"src":"22467:10:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8675,"name":"socket","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8608,"src":"22479:6:29","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":8673,"name":"OperatorSocketUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12600,"src":"22446:20:29","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes32,string memory)"}},"id":8676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22446:40:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8677,"nodeType":"EmitStatement","src":"22441:45:29"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_OperatorStatus_$12354","typeString":"enum IRegistryCoordinator.OperatorStatus"},"id":8684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":8678,"name":"_operatorInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7824,"src":"22501:13:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_OperatorInfo_$12360_storage_$","typeString":"mapping(address => struct IRegistryCoordinator.OperatorInfo storage ref)"}},"id":8680,"indexExpression":{"id":8679,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8602,"src":"22515:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22501:23:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorInfo_$12360_storage","typeString":"struct IRegistryCoordinator.OperatorInfo storage ref"}},"id":8681,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"status","nodeType":"MemberAccess","referencedDeclaration":12359,"src":"22501:30:29","typeDescriptions":{"typeIdentifier":"t_enum$_OperatorStatus_$12354","typeString":"enum IRegistryCoordinator.OperatorStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":8682,"name":"OperatorStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12354,"src":"22535:14:29","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_OperatorStatus_$12354_$","typeString":"type(enum IRegistryCoordinator.OperatorStatus)"}},"id":8683,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"REGISTERED","nodeType":"MemberAccess","referencedDeclaration":12352,"src":"22535:25:29","typeDescriptions":{"typeIdentifier":"t_enum$_OperatorStatus_$12354","typeString":"enum IRegistryCoordinator.OperatorStatus"}},"src":"22501:59:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8708,"nodeType":"IfStatement","src":"22497:462:29","trueBody":{"id":8707,"nodeType":"Block","src":"22562:397:29","statements":[{"expression":{"id":8693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8685,"name":"_operatorInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7824,"src":"22576:13:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_OperatorInfo_$12360_storage_$","typeString":"mapping(address => struct IRegistryCoordinator.OperatorInfo storage ref)"}},"id":8687,"indexExpression":{"id":8686,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8602,"src":"22590:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22576:23:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorInfo_$12360_storage","typeString":"struct IRegistryCoordinator.OperatorInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8689,"name":"operatorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8604,"src":"22645:10:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":8690,"name":"OperatorStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12354,"src":"22681:14:29","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_OperatorStatus_$12354_$","typeString":"type(enum IRegistryCoordinator.OperatorStatus)"}},"id":8691,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"REGISTERED","nodeType":"MemberAccess","referencedDeclaration":12352,"src":"22681:25:29","typeDescriptions":{"typeIdentifier":"t_enum$_OperatorStatus_$12354","typeString":"enum IRegistryCoordinator.OperatorStatus"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_enum$_OperatorStatus_$12354","typeString":"enum IRegistryCoordinator.OperatorStatus"}],"id":8688,"name":"OperatorInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12360,"src":"22602:12:29","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_OperatorInfo_$12360_storage_ptr_$","typeString":"type(struct IRegistryCoordinator.OperatorInfo storage pointer)"}},"id":8692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["operatorId","status"],"nodeType":"FunctionCall","src":"22602:119:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_OperatorInfo_$12360_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorInfo memory"}},"src":"22576:145:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorInfo_$12360_storage","typeString":"struct IRegistryCoordinator.OperatorInfo storage ref"}},"id":8694,"nodeType":"ExpressionStatement","src":"22576:145:29"},{"expression":{"arguments":[{"id":8698,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8602,"src":"22860:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8699,"name":"operatorSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8611,"src":"22870:17:29","typeDescriptions":{"typeIdentifier":"t_struct$_SignatureWithSaltAndExpiry_$1558_memory_ptr","typeString":"struct ISignatureUtils.SignatureWithSaltAndExpiry memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_SignatureWithSaltAndExpiry_$1558_memory_ptr","typeString":"struct ISignatureUtils.SignatureWithSaltAndExpiry memory"}],"expression":{"id":8695,"name":"serviceManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7790,"src":"22823:14:29","typeDescriptions":{"typeIdentifier":"t_contract$_IServiceManager_$12591","typeString":"contract IServiceManager"}},"id":8697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"registerOperatorToAVS","nodeType":"MemberAccess","referencedDeclaration":12568,"src":"22823:36:29","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_struct$_SignatureWithSaltAndExpiry_$1558_memory_ptr_$returns$__$","typeString":"function (address,struct ISignatureUtils.SignatureWithSaltAndExpiry memory) external"}},"id":8700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22823:65:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8701,"nodeType":"ExpressionStatement","src":"22823:65:29"},{"eventCall":{"arguments":[{"id":8703,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8602,"src":"22927:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8704,"name":"operatorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8604,"src":"22937:10:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8702,"name":"OperatorRegistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12317,"src":"22908:18:29","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32)"}},"id":8705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22908:40:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8706,"nodeType":"EmitStatement","src":"22903:45:29"}]}},{"documentation":" Register the operator with the BLSApkRegistry, StakeRegistry, and IndexRegistry","expression":{"arguments":[{"id":8712,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8602,"src":"23116:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8713,"name":"quorumNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8606,"src":"23126:13:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":8709,"name":"blsApkRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7794,"src":"23084:14:29","typeDescriptions":{"typeIdentifier":"t_contract$_IBLSApkRegistry_$12091","typeString":"contract IBLSApkRegistry"}},"id":8711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"registerOperator","nodeType":"MemberAccess","referencedDeclaration":11976,"src":"23084:31:29","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory) external"}},"id":8714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23084:56:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8715,"nodeType":"ExpressionStatement","src":"23084:56:29"},{"expression":{"id":8728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"expression":{"id":8716,"name":"results","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8615,"src":"23151:7:29","typeDescriptions":{"typeIdentifier":"t_struct$_RegisterResults_$8599_memory_ptr","typeString":"struct RegistryCoordinator.RegisterResults memory"}},"id":8718,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"operatorStakes","nodeType":"MemberAccess","referencedDeclaration":8595,"src":"23151:22:29","typeDescriptions":{"typeIdentifier":"t_array$_t_uint96_$dyn_memory_ptr","typeString":"uint96[] memory"}},{"expression":{"id":8719,"name":"results","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8615,"src":"23175:7:29","typeDescriptions":{"typeIdentifier":"t_struct$_RegisterResults_$8599_memory_ptr","typeString":"struct RegistryCoordinator.RegisterResults memory"}},"id":8720,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"totalStakes","nodeType":"MemberAccess","referencedDeclaration":8598,"src":"23175:19:29","typeDescriptions":{"typeIdentifier":"t_array$_t_uint96_$dyn_memory_ptr","typeString":"uint96[] memory"}}],"id":8721,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"23150:45:29","typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_uint96_$dyn_memory_ptr_$_t_array$_t_uint96_$dyn_memory_ptr_$","typeString":"tuple(uint96[] memory,uint96[] memory)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8724,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8602,"src":"23242:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8725,"name":"operatorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8604,"src":"23252:10:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8726,"name":"quorumNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8606,"src":"23264:13:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":8722,"name":"stakeRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7798,"src":"23211:13:29","typeDescriptions":{"typeIdentifier":"t_contract$_IStakeRegistry_$12942","typeString":"contract IStakeRegistry"}},"id":8723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"registerOperator","nodeType":"MemberAccess","referencedDeclaration":12695,"src":"23211:30:29","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_array$_t_uint96_$dyn_memory_ptr_$_t_array$_t_uint96_$dyn_memory_ptr_$","typeString":"function (address,bytes32,bytes memory) external returns (uint96[] memory,uint96[] memory)"}},"id":8727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23211:67:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_uint96_$dyn_memory_ptr_$_t_array$_t_uint96_$dyn_memory_ptr_$","typeString":"tuple(uint96[] memory,uint96[] memory)"}},"src":"23150:128:29","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8729,"nodeType":"ExpressionStatement","src":"23150:128:29"},{"expression":{"id":8738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":8730,"name":"results","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8615,"src":"23288:7:29","typeDescriptions":{"typeIdentifier":"t_struct$_RegisterResults_$8599_memory_ptr","typeString":"struct RegistryCoordinator.RegisterResults memory"}},"id":8732,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"numOperatorsPerQuorum","nodeType":"MemberAccess","referencedDeclaration":8592,"src":"23288:29:29","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_memory_ptr","typeString":"uint32[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8735,"name":"operatorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8604,"src":"23351:10:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8736,"name":"quorumNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8606,"src":"23363:13:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":8733,"name":"indexRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7802,"src":"23320:13:29","typeDescriptions":{"typeIdentifier":"t_contract$_IIndexRegistry_$12290","typeString":"contract IIndexRegistry"}},"id":8734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"registerOperator","nodeType":"MemberAccess","referencedDeclaration":12232,"src":"23320:30:29","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_array$_t_uint32_$dyn_memory_ptr_$","typeString":"function (bytes32,bytes memory) external returns (uint32[] memory)"}},"id":8737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23320:57:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_memory_ptr","typeString":"uint32[] memory"}},"src":"23288:89:29","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_memory_ptr","typeString":"uint32[] memory"}},"id":8739,"nodeType":"ExpressionStatement","src":"23288:89:29"},{"expression":{"id":8740,"name":"results","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8615,"src":"23395:7:29","typeDescriptions":{"typeIdentifier":"t_struct$_RegisterResults_$8599_memory_ptr","typeString":"struct RegistryCoordinator.RegisterResults memory"}},"functionReturnParameters":8616,"id":8741,"nodeType":"Return","src":"23388:14:29"}]},"documentation":{"id":8600,"nodeType":"StructuredDocumentation","src":"20669:191:29","text":" @notice Register the operator for one or more quorums. This method updates the\n operator's quorum bitmap, socket, and status, then registers them with each registry."},"implemented":true,"kind":"function","modifiers":[],"name":"_registerOperator","nameLocation":"20874:17:29","parameters":{"id":8612,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8602,"mutability":"mutable","name":"operator","nameLocation":"20909:8:29","nodeType":"VariableDeclaration","scope":8743,"src":"20901:16:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8601,"name":"address","nodeType":"ElementaryTypeName","src":"20901:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8604,"mutability":"mutable","name":"operatorId","nameLocation":"20936:10:29","nodeType":"VariableDeclaration","scope":8743,"src":"20928:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8603,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20928:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8606,"mutability":"mutable","name":"quorumNumbers","nameLocation":"20971:13:29","nodeType":"VariableDeclaration","scope":8743,"src":"20956:28:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":8605,"name":"bytes","nodeType":"ElementaryTypeName","src":"20956:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":8608,"mutability":"mutable","name":"socket","nameLocation":"21008:6:29","nodeType":"VariableDeclaration","scope":8743,"src":"20994:20:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8607,"name":"string","nodeType":"ElementaryTypeName","src":"20994:6:29","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8611,"mutability":"mutable","name":"operatorSignature","nameLocation":"21058:17:29","nodeType":"VariableDeclaration","scope":8743,"src":"21024:51:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SignatureWithSaltAndExpiry_$1558_memory_ptr","typeString":"struct ISignatureUtils.SignatureWithSaltAndExpiry"},"typeName":{"id":8610,"nodeType":"UserDefinedTypeName","pathNode":{"id":8609,"name":"SignatureWithSaltAndExpiry","nodeType":"IdentifierPath","referencedDeclaration":1558,"src":"21024:26:29"},"referencedDeclaration":1558,"src":"21024:26:29","typeDescriptions":{"typeIdentifier":"t_struct$_SignatureWithSaltAndExpiry_$1558_storage_ptr","typeString":"struct ISignatureUtils.SignatureWithSaltAndExpiry"}},"visibility":"internal"}],"src":"20891:190:29"},"returnParameters":{"id":8616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8615,"mutability":"mutable","name":"results","nameLocation":"21131:7:29","nodeType":"VariableDeclaration","scope":8743,"src":"21108:30:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RegisterResults_$8599_memory_ptr","typeString":"struct RegistryCoordinator.RegisterResults"},"typeName":{"id":8614,"nodeType":"UserDefinedTypeName","pathNode":{"id":8613,"name":"RegisterResults","nodeType":"IdentifierPath","referencedDeclaration":8599,"src":"21108:15:29"},"referencedDeclaration":8599,"src":"21108:15:29","typeDescriptions":{"typeIdentifier":"t_struct$_RegisterResults_$8599_storage_ptr","typeString":"struct RegistryCoordinator.RegisterResults"}},"visibility":"internal"}],"src":"21107:32:29"},"scope":9739,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":8779,"nodeType":"FunctionDefinition","src":"23415:425:29","nodes":[],"body":{"id":8778,"nodeType":"Block","src":"23583:257:29","nodes":[],"statements":[{"expression":{"id":8758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8753,"name":"operatorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8751,"src":"23593:10:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8756,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8745,"src":"23635:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8754,"name":"blsApkRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7794,"src":"23606:14:29","typeDescriptions":{"typeIdentifier":"t_contract$_IBLSApkRegistry_$12091","typeString":"contract IBLSApkRegistry"}},"id":8755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getOperatorId","nodeType":"MemberAccess","referencedDeclaration":12090,"src":"23606:28:29","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bytes32_$","typeString":"function (address) view external returns (bytes32)"}},"id":8757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23606:38:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"23593:51:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8759,"nodeType":"ExpressionStatement","src":"23593:51:29"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":8762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8760,"name":"operatorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8751,"src":"23658:10:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":8761,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23672:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23658:15:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8775,"nodeType":"IfStatement","src":"23654:153:29","trueBody":{"id":8774,"nodeType":"Block","src":"23675:132:29","statements":[{"expression":{"id":8772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8763,"name":"operatorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8751,"src":"23689:10:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8766,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8745,"src":"23738:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8767,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8748,"src":"23748:6:29","typeDescriptions":{"typeIdentifier":"t_struct$_PubkeyRegistrationParams_$11945_calldata_ptr","typeString":"struct IBLSApkRegistry.PubkeyRegistrationParams calldata"}},{"arguments":[{"id":8769,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8745,"src":"23786:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8768,"name":"pubkeyRegistrationMessageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9724,"src":"23756:29:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_struct$_G1Point_$12956_memory_ptr_$","typeString":"function (address) view returns (struct BN254.G1Point memory)"}},"id":8770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23756:39:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$12956_memory_ptr","typeString":"struct BN254.G1Point memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_PubkeyRegistrationParams_$11945_calldata_ptr","typeString":"struct IBLSApkRegistry.PubkeyRegistrationParams calldata"},{"typeIdentifier":"t_struct$_G1Point_$12956_memory_ptr","typeString":"struct BN254.G1Point memory"}],"expression":{"id":8764,"name":"blsApkRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7794,"src":"23702:14:29","typeDescriptions":{"typeIdentifier":"t_contract$_IBLSApkRegistry_$12091","typeString":"contract IBLSApkRegistry"}},"id":8765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"registerBLSPublicKey","nodeType":"MemberAccess","referencedDeclaration":12020,"src":"23702:35:29","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_struct$_PubkeyRegistrationParams_$11945_memory_ptr_$_t_struct$_G1Point_$12956_memory_ptr_$returns$_t_bytes32_$","typeString":"function (address,struct IBLSApkRegistry.PubkeyRegistrationParams memory,struct BN254.G1Point memory) external returns (bytes32)"}},"id":8771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23702:94:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"23689:107:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8773,"nodeType":"ExpressionStatement","src":"23689:107:29"}]}},{"expression":{"id":8776,"name":"operatorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8751,"src":"23823:10:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":8752,"id":8777,"nodeType":"Return","src":"23816:17:29"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getOrCreateOperatorId","nameLocation":"23424:22:29","parameters":{"id":8749,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8745,"mutability":"mutable","name":"operator","nameLocation":"23464:8:29","nodeType":"VariableDeclaration","scope":8779,"src":"23456:16:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8744,"name":"address","nodeType":"ElementaryTypeName","src":"23456:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8748,"mutability":"mutable","name":"params","nameLocation":"23532:6:29","nodeType":"VariableDeclaration","scope":8779,"src":"23482:56:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_PubkeyRegistrationParams_$11945_calldata_ptr","typeString":"struct IBLSApkRegistry.PubkeyRegistrationParams"},"typeName":{"id":8747,"nodeType":"UserDefinedTypeName","pathNode":{"id":8746,"name":"IBLSApkRegistry.PubkeyRegistrationParams","nodeType":"IdentifierPath","referencedDeclaration":11945,"src":"23482:40:29"},"referencedDeclaration":11945,"src":"23482:40:29","typeDescriptions":{"typeIdentifier":"t_struct$_PubkeyRegistrationParams_$11945_storage_ptr","typeString":"struct IBLSApkRegistry.PubkeyRegistrationParams"}},"visibility":"internal"}],"src":"23446:98:29"},"returnParameters":{"id":8752,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8751,"mutability":"mutable","name":"operatorId","nameLocation":"23571:10:29","nodeType":"VariableDeclaration","scope":8779,"src":"23563:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8750,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23563:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"23562:20:29"},"scope":9739,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8852,"nodeType":"FunctionDefinition","src":"23846:1246:29","nodes":[],"body":{"id":8851,"nodeType":"Block","src":"24104:988:29","nodes":[],"statements":[{"assignments":[8797],"declarations":[{"constant":false,"id":8797,"mutability":"mutable","name":"operatorToKick","nameLocation":"24122:14:29","nodeType":"VariableDeclaration","scope":8851,"src":"24114:22:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8796,"name":"address","nodeType":"ElementaryTypeName","src":"24114:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":8800,"initialValue":{"expression":{"id":8798,"name":"kickParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8790,"src":"24139:10:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorKickParam_$12379_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorKickParam memory"}},"id":8799,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"operator","nodeType":"MemberAccess","referencedDeclaration":12378,"src":"24139:19:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"24114:44:29"},{"assignments":[8802],"declarations":[{"constant":false,"id":8802,"mutability":"mutable","name":"idToKick","nameLocation":"24176:8:29","nodeType":"VariableDeclaration","scope":8851,"src":"24168:16:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8801,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24168:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":8807,"initialValue":{"expression":{"baseExpression":{"id":8803,"name":"_operatorInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7824,"src":"24187:13:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_OperatorInfo_$12360_storage_$","typeString":"mapping(address => struct IRegistryCoordinator.OperatorInfo storage ref)"}},"id":8805,"indexExpression":{"id":8804,"name":"operatorToKick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8797,"src":"24201:14:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24187:29:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorInfo_$12360_storage","typeString":"struct IRegistryCoordinator.OperatorInfo storage ref"}},"id":8806,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"operatorId","nodeType":"MemberAccess","referencedDeclaration":12356,"src":"24187:40:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"24168:59:29"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8809,"name":"newOperator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8785,"src":"24245:11:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":8810,"name":"operatorToKick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8797,"src":"24260:14:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"24245:29:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5265676973747279436f6f7264696e61746f722e5f76616c6964617465436875726e3a2063616e6e6f7420636875726e2073656c66","id":8812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24276:55:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_5cec9ac440eab9bed88fec9259c9d9bef4d5ed91163da700e99f35395fa1c1f7","typeString":"literal_string \"RegistryCoordinator._validateChurn: cannot churn self\""},"value":"RegistryCoordinator._validateChurn: cannot churn self"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5cec9ac440eab9bed88fec9259c9d9bef4d5ed91163da700e99f35395fa1c1f7","typeString":"literal_string \"RegistryCoordinator._validateChurn: cannot churn self\""}],"id":8808,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"24237:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24237:95:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8814,"nodeType":"ExpressionStatement","src":"24237:95:29"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":8819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8816,"name":"kickParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8790,"src":"24350:10:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorKickParam_$12379_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorKickParam memory"}},"id":8817,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"quorumNumber","nodeType":"MemberAccess","referencedDeclaration":12376,"src":"24350:23:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":8818,"name":"quorumNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"24377:12:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"24350:39:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5265676973747279436f6f7264696e61746f722e5f76616c6964617465436875726e3a2071756f72756d4e756d626572206e6f74207468652073616d65206173207369676e6564","id":8820,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24391:73:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb763575d4f10ec26375da04c770378dc262b6024a31faa17a428e42ac1f22f1","typeString":"literal_string \"RegistryCoordinator._validateChurn: quorumNumber not the same as signed\""},"value":"RegistryCoordinator._validateChurn: quorumNumber not the same as signed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cb763575d4f10ec26375da04c770378dc262b6024a31faa17a428e42ac1f22f1","typeString":"literal_string \"RegistryCoordinator._validateChurn: quorumNumber not the same as signed\""}],"id":8815,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"24342:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24342:123:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8822,"nodeType":"ExpressionStatement","src":"24342:123:29"},{"assignments":[8824],"declarations":[{"constant":false,"id":8824,"mutability":"mutable","name":"operatorToKickStake","nameLocation":"24573:19:29","nodeType":"VariableDeclaration","scope":8851,"src":"24566:26:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":8823,"name":"uint96","nodeType":"ElementaryTypeName","src":"24566:6:29","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"id":8830,"initialValue":{"arguments":[{"id":8827,"name":"idToKick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8802,"src":"24625:8:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8828,"name":"quorumNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"24635:12:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":8825,"name":"stakeRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7798,"src":"24595:13:29","typeDescriptions":{"typeIdentifier":"t_contract$_IStakeRegistry_$12942","typeString":"contract IStakeRegistry"}},"id":8826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getCurrentStake","nodeType":"MemberAccess","referencedDeclaration":12909,"src":"24595:29:29","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_uint8_$returns$_t_uint96_$","typeString":"function (bytes32,uint8) view external returns (uint96)"}},"id":8829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24595:53:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"VariableDeclarationStatement","src":"24566:82:29"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint96","typeString":"uint96"},"id":8837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8832,"name":"newOperatorStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8787,"src":"24679:16:29","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"id":8834,"name":"operatorToKickStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8824,"src":"24723:19:29","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},{"id":8835,"name":"setParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8793,"src":"24744:9:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorSetParam_$12374_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorSetParam memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint96","typeString":"uint96"},{"typeIdentifier":"t_struct$_OperatorSetParam_$12374_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorSetParam memory"}],"id":8833,"name":"_individualKickThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9049,"src":"24698:24:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint96_$_t_struct$_OperatorSetParam_$12374_memory_ptr_$returns$_t_uint96_$","typeString":"function (uint96,struct IRegistryCoordinator.OperatorSetParam memory) pure returns (uint96)"}},"id":8836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24698:56:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"24679:75:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5265676973747279436f6f7264696e61746f722e5f76616c6964617465436875726e3a20696e636f6d696e67206f70657261746f722068617320696e73756666696369656e74207374616b6520666f7220636875726e","id":8838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24768:88:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_ddd178a214bc61ac0c04953111b9fd16ff0b1b99139e582beb616c916a0164dc","typeString":"literal_string \"RegistryCoordinator._validateChurn: incoming operator has insufficient stake for churn\""},"value":"RegistryCoordinator._validateChurn: incoming operator has insufficient stake for churn"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ddd178a214bc61ac0c04953111b9fd16ff0b1b99139e582beb616c916a0164dc","typeString":"literal_string \"RegistryCoordinator._validateChurn: incoming operator has insufficient stake for churn\""}],"id":8831,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"24658:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24658:208:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8840,"nodeType":"ExpressionStatement","src":"24658:208:29"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint96","typeString":"uint96"},"id":8847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8842,"name":"operatorToKickStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8824,"src":"24897:19:29","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[{"id":8844,"name":"totalQuorumStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8783,"src":"24939:16:29","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},{"id":8845,"name":"setParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8793,"src":"24957:9:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorSetParam_$12374_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorSetParam memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint96","typeString":"uint96"},{"typeIdentifier":"t_struct$_OperatorSetParam_$12374_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorSetParam memory"}],"id":8843,"name":"_totalKickThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9068,"src":"24919:19:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint96_$_t_struct$_OperatorSetParam_$12374_memory_ptr_$returns$_t_uint96_$","typeString":"function (uint96,struct IRegistryCoordinator.OperatorSetParam memory) pure returns (uint96)"}},"id":8846,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24919:48:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"24897:70:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5265676973747279436f6f7264696e61746f722e5f76616c6964617465436875726e3a2063616e6e6f74206b69636b206f70657261746f722077697468206d6f7265207468616e206b69636b424950734f66546f74616c5374616b65","id":8848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24981:94:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb8f0a2d33e1cb5b8b6e9fe2fa4e2b6766627d714ac3f574bb920668f83d10fc","typeString":"literal_string \"RegistryCoordinator._validateChurn: cannot kick operator with more than kickBIPsOfTotalStake\""},"value":"RegistryCoordinator._validateChurn: cannot kick operator with more than kickBIPsOfTotalStake"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cb8f0a2d33e1cb5b8b6e9fe2fa4e2b6766627d714ac3f574bb920668f83d10fc","typeString":"literal_string \"RegistryCoordinator._validateChurn: cannot kick operator with more than kickBIPsOfTotalStake\""}],"id":8841,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"24876:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24876:209:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8850,"nodeType":"ExpressionStatement","src":"24876:209:29"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validateChurn","nameLocation":"23855:14:29","parameters":{"id":8794,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8781,"mutability":"mutable","name":"quorumNumber","nameLocation":"23885:12:29","nodeType":"VariableDeclaration","scope":8852,"src":"23879:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":8780,"name":"uint8","nodeType":"ElementaryTypeName","src":"23879:5:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":8783,"mutability":"mutable","name":"totalQuorumStake","nameLocation":"23915:16:29","nodeType":"VariableDeclaration","scope":8852,"src":"23908:23:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":8782,"name":"uint96","nodeType":"ElementaryTypeName","src":"23908:6:29","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"},{"constant":false,"id":8785,"mutability":"mutable","name":"newOperator","nameLocation":"23949:11:29","nodeType":"VariableDeclaration","scope":8852,"src":"23941:19:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8784,"name":"address","nodeType":"ElementaryTypeName","src":"23941:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8787,"mutability":"mutable","name":"newOperatorStake","nameLocation":"23978:16:29","nodeType":"VariableDeclaration","scope":8852,"src":"23971:23:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":8786,"name":"uint96","nodeType":"ElementaryTypeName","src":"23971:6:29","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"},{"constant":false,"id":8790,"mutability":"mutable","name":"kickParams","nameLocation":"24029:10:29","nodeType":"VariableDeclaration","scope":8852,"src":"24004:35:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorKickParam_$12379_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorKickParam"},"typeName":{"id":8789,"nodeType":"UserDefinedTypeName","pathNode":{"id":8788,"name":"OperatorKickParam","nodeType":"IdentifierPath","referencedDeclaration":12379,"src":"24004:17:29"},"referencedDeclaration":12379,"src":"24004:17:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorKickParam_$12379_storage_ptr","typeString":"struct IRegistryCoordinator.OperatorKickParam"}},"visibility":"internal"},{"constant":false,"id":8793,"mutability":"mutable","name":"setParams","nameLocation":"24074:9:29","nodeType":"VariableDeclaration","scope":8852,"src":"24050:33:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorSetParam_$12374_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorSetParam"},"typeName":{"id":8792,"nodeType":"UserDefinedTypeName","pathNode":{"id":8791,"name":"OperatorSetParam","nodeType":"IdentifierPath","referencedDeclaration":12374,"src":"24050:16:29"},"referencedDeclaration":12374,"src":"24050:16:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorSetParam_$12374_storage_ptr","typeString":"struct IRegistryCoordinator.OperatorSetParam"}},"visibility":"internal"}],"src":"23869:220:29"},"returnParameters":{"id":8795,"nodeType":"ParameterList","parameters":[],"src":"24104:0:29"},"scope":9739,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":8982,"nodeType":"FunctionDefinition","src":"25338:2297:29","nodes":[],"body":{"id":8981,"nodeType":"Block","src":"25453:2182:29","nodes":[],"statements":[{"assignments":[8862],"declarations":[{"constant":false,"id":8862,"mutability":"mutable","name":"operatorInfo","nameLocation":"25552:12:29","nodeType":"VariableDeclaration","scope":8981,"src":"25531:33:29","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorInfo_$12360_storage_ptr","typeString":"struct IRegistryCoordinator.OperatorInfo"},"typeName":{"id":8861,"nodeType":"UserDefinedTypeName","pathNode":{"id":8860,"name":"OperatorInfo","nodeType":"IdentifierPath","referencedDeclaration":12360,"src":"25531:12:29"},"referencedDeclaration":12360,"src":"25531:12:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorInfo_$12360_storage_ptr","typeString":"struct IRegistryCoordinator.OperatorInfo"}},"visibility":"internal"}],"id":8866,"initialValue":{"baseExpression":{"id":8863,"name":"_operatorInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7824,"src":"25567:13:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_OperatorInfo_$12360_storage_$","typeString":"mapping(address => struct IRegistryCoordinator.OperatorInfo storage ref)"}},"id":8865,"indexExpression":{"id":8864,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8855,"src":"25581:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25567:23:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorInfo_$12360_storage","typeString":"struct IRegistryCoordinator.OperatorInfo storage ref"}},"nodeType":"VariableDeclarationStatement","src":"25531:59:29"},{"assignments":[8868],"declarations":[{"constant":false,"id":8868,"mutability":"mutable","name":"operatorId","nameLocation":"25608:10:29","nodeType":"VariableDeclaration","scope":8981,"src":"25600:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8867,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25600:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":8871,"initialValue":{"expression":{"id":8869,"name":"operatorInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8862,"src":"25621:12:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorInfo_$12360_storage_ptr","typeString":"struct IRegistryCoordinator.OperatorInfo storage pointer"}},"id":8870,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"operatorId","nodeType":"MemberAccess","referencedDeclaration":12356,"src":"25621:23:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"25600:44:29"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_OperatorStatus_$12354","typeString":"enum IRegistryCoordinator.OperatorStatus"},"id":8877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8873,"name":"operatorInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8862,"src":"25662:12:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorInfo_$12360_storage_ptr","typeString":"struct IRegistryCoordinator.OperatorInfo storage pointer"}},"id":8874,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"status","nodeType":"MemberAccess","referencedDeclaration":12359,"src":"25662:19:29","typeDescriptions":{"typeIdentifier":"t_enum$_OperatorStatus_$12354","typeString":"enum IRegistryCoordinator.OperatorStatus"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":8875,"name":"OperatorStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12354,"src":"25685:14:29","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_OperatorStatus_$12354_$","typeString":"type(enum IRegistryCoordinator.OperatorStatus)"}},"id":8876,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"REGISTERED","nodeType":"MemberAccess","referencedDeclaration":12352,"src":"25685:25:29","typeDescriptions":{"typeIdentifier":"t_enum$_OperatorStatus_$12354","typeString":"enum IRegistryCoordinator.OperatorStatus"}},"src":"25662:48:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5265676973747279436f6f7264696e61746f722e5f646572656769737465724f70657261746f723a206f70657261746f72206973206e6f742072656769737465726564","id":8878,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25712:69:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_320cb2001059ce8c7329459ede3d4d6f29959c2735f03b256756b130b4322ef1","typeString":"literal_string \"RegistryCoordinator._deregisterOperator: operator is not registered\""},"value":"RegistryCoordinator._deregisterOperator: operator is not registered"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_320cb2001059ce8c7329459ede3d4d6f29959c2735f03b256756b130b4322ef1","typeString":"literal_string \"RegistryCoordinator._deregisterOperator: operator is not registered\""}],"id":8872,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"25654:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25654:128:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8880,"nodeType":"ExpressionStatement","src":"25654:128:29"},{"assignments":[8883],"declarations":[{"constant":false,"id":8883,"mutability":"mutable","name":"quorumsToRemove","nameLocation":"26166:15:29","nodeType":"VariableDeclaration","scope":8981,"src":"26158:23:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"},"typeName":{"id":8882,"name":"uint192","nodeType":"ElementaryTypeName","src":"26158:7:29","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"visibility":"internal"}],"documentation":" Get bitmap of quorums to deregister from and operator's current bitmap. Validate that:\n - we're trying to deregister from at least 1 quorum\n - the operator is currently registered for any quorums we're trying to deregister from\n Then, calculate the opreator's new bitmap after deregistration","id":8892,"initialValue":{"arguments":[{"arguments":[{"id":8888,"name":"quorumNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8857,"src":"26230:13:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":8889,"name":"quorumCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7805,"src":"26245:11:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":8886,"name":"BitmapUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14393,"src":"26192:11:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BitmapUtils_$14393_$","typeString":"type(library BitmapUtils)"}},"id":8887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"orderedBytesArrayToBitmap","nodeType":"MemberAccess","referencedDeclaration":14054,"src":"26192:37:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint8_$returns$_t_uint256_$","typeString":"function (bytes memory,uint8) pure returns (uint256)"}},"id":8890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26192:65:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8885,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26184:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_uint192_$","typeString":"type(uint192)"},"typeName":{"id":8884,"name":"uint192","nodeType":"ElementaryTypeName","src":"26184:7:29","typeDescriptions":{}}},"id":8891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26184:74:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"nodeType":"VariableDeclarationStatement","src":"26158:100:29"},{"assignments":[8894],"declarations":[{"constant":false,"id":8894,"mutability":"mutable","name":"currentBitmap","nameLocation":"26276:13:29","nodeType":"VariableDeclaration","scope":8981,"src":"26268:21:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"},"typeName":{"id":8893,"name":"uint192","nodeType":"ElementaryTypeName","src":"26268:7:29","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"visibility":"internal"}],"id":8898,"initialValue":{"arguments":[{"id":8896,"name":"operatorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8868,"src":"26315:10:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8895,"name":"_currentOperatorBitmap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9332,"src":"26292:22:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_uint192_$","typeString":"function (bytes32) view returns (uint192)"}},"id":8897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26292:34:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"nodeType":"VariableDeclarationStatement","src":"26268:58:29"},{"expression":{"arguments":[{"id":8903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"26344:26:29","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":8900,"name":"quorumsToRemove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8883,"src":"26345:15:29","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"id":8901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isEmpty","nodeType":"MemberAccess","referencedDeclaration":14327,"src":"26345:23:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$","typeString":"function (uint256) pure returns (bool)"}},"id":8902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26345:25:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5265676973747279436f6f7264696e61746f722e5f646572656769737465724f70657261746f723a206269746d61702063616e6e6f742062652030","id":8904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26372:61:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_6b9dd829228000797b99c1d0789aa02a4f8014f1648be37a300a012125afa679","typeString":"literal_string \"RegistryCoordinator._deregisterOperator: bitmap cannot be 0\""},"value":"RegistryCoordinator._deregisterOperator: bitmap cannot be 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6b9dd829228000797b99c1d0789aa02a4f8014f1648be37a300a012125afa679","typeString":"literal_string \"RegistryCoordinator._deregisterOperator: bitmap cannot be 0\""}],"id":8899,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26336:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26336:98:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8906,"nodeType":"ExpressionStatement","src":"26336:98:29"},{"expression":{"arguments":[{"arguments":[{"id":8909,"name":"quorumsToRemove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8883,"src":"26469:15:29","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint192","typeString":"uint192"}],"id":8908,"name":"_quorumsAllExist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9299,"src":"26452:16:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint192_$returns$_t_bool_$","typeString":"function (uint192) view returns (bool)"}},"id":8910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26452:33:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5265676973747279436f6f7264696e61746f722e5f646572656769737465724f70657261746f723a20736f6d652071756f72756d7320646f206e6f74206578697374","id":8911,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26487:68:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_dce25e82c1000b265d777124b92222d7a444bc6da1f4ee8012795e184ed36d99","typeString":"literal_string \"RegistryCoordinator._deregisterOperator: some quorums do not exist\""},"value":"RegistryCoordinator._deregisterOperator: some quorums do not exist"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dce25e82c1000b265d777124b92222d7a444bc6da1f4ee8012795e184ed36d99","typeString":"literal_string \"RegistryCoordinator._deregisterOperator: some quorums do not exist\""}],"id":8907,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26444:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26444:112:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8913,"nodeType":"ExpressionStatement","src":"26444:112:29"},{"expression":{"arguments":[{"arguments":[{"id":8917,"name":"currentBitmap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8894,"src":"26601:13:29","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint192","typeString":"uint192"}],"expression":{"id":8915,"name":"quorumsToRemove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8883,"src":"26574:15:29","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"id":8916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isSubsetOf","nodeType":"MemberAccess","referencedDeclaration":14361,"src":"26574:26:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (bool)"}},"id":8918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26574:41:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5265676973747279436f6f7264696e61746f722e5f646572656769737465724f70657261746f723a206f70657261746f72206973206e6f74207265676973746572656420666f72207370656369666965642071756f72756d73","id":8919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26617:91:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_3a7db35ae0379a9e027dd1fca2248015c9abd8723ad35776b0671f322af3a486","typeString":"literal_string \"RegistryCoordinator._deregisterOperator: operator is not registered for specified quorums\""},"value":"RegistryCoordinator._deregisterOperator: operator is not registered for specified quorums"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3a7db35ae0379a9e027dd1fca2248015c9abd8723ad35776b0671f322af3a486","typeString":"literal_string \"RegistryCoordinator._deregisterOperator: operator is not registered for specified quorums\""}],"id":8914,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26566:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26566:143:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8921,"nodeType":"ExpressionStatement","src":"26566:143:29"},{"assignments":[8923],"declarations":[{"constant":false,"id":8923,"mutability":"mutable","name":"newBitmap","nameLocation":"26727:9:29","nodeType":"VariableDeclaration","scope":8981,"src":"26719:17:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"},"typeName":{"id":8922,"name":"uint192","nodeType":"ElementaryTypeName","src":"26719:7:29","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"visibility":"internal"}],"id":8931,"initialValue":{"arguments":[{"arguments":[{"id":8928,"name":"quorumsToRemove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8883,"src":"26767:15:29","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint192","typeString":"uint192"}],"expression":{"id":8926,"name":"currentBitmap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8894,"src":"26747:13:29","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"id":8927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"minus","nodeType":"MemberAccess","referencedDeclaration":14392,"src":"26747:19:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":8929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26747:36:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8925,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26739:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_uint192_$","typeString":"type(uint192)"},"typeName":{"id":8924,"name":"uint192","nodeType":"ElementaryTypeName","src":"26739:7:29","typeDescriptions":{}}},"id":8930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26739:45:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"nodeType":"VariableDeclarationStatement","src":"26719:65:29"},{"documentation":" Update operator's bitmap and status:","expression":{"arguments":[{"id":8933,"name":"operatorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8868,"src":"26915:10:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8934,"name":"newBitmap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8923,"src":"26950:9:29","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint192","typeString":"uint192"}],"id":8932,"name":"_updateOperatorBitmap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9273,"src":"26867:21:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint192_$returns$__$","typeString":"function (bytes32,uint192)"}},"id":8935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["operatorId","newBitmap"],"nodeType":"FunctionCall","src":"26867:103:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8936,"nodeType":"ExpressionStatement","src":"26867:103:29"},{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":8937,"name":"newBitmap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8923,"src":"27134:9:29","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"id":8938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isEmpty","nodeType":"MemberAccess","referencedDeclaration":14327,"src":"27134:17:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$","typeString":"function (uint256) pure returns (bool)"}},"id":8939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27134:19:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8959,"nodeType":"IfStatement","src":"27130:224:29","trueBody":{"id":8958,"nodeType":"Block","src":"27155:199:29","statements":[{"expression":{"id":8945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":8940,"name":"operatorInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8862,"src":"27169:12:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorInfo_$12360_storage_ptr","typeString":"struct IRegistryCoordinator.OperatorInfo storage pointer"}},"id":8942,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"status","nodeType":"MemberAccess","referencedDeclaration":12359,"src":"27169:19:29","typeDescriptions":{"typeIdentifier":"t_enum$_OperatorStatus_$12354","typeString":"enum IRegistryCoordinator.OperatorStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":8943,"name":"OperatorStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12354,"src":"27191:14:29","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_OperatorStatus_$12354_$","typeString":"type(enum IRegistryCoordinator.OperatorStatus)"}},"id":8944,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"DEREGISTERED","nodeType":"MemberAccess","referencedDeclaration":12353,"src":"27191:27:29","typeDescriptions":{"typeIdentifier":"t_enum$_OperatorStatus_$12354","typeString":"enum IRegistryCoordinator.OperatorStatus"}},"src":"27169:49:29","typeDescriptions":{"typeIdentifier":"t_enum$_OperatorStatus_$12354","typeString":"enum IRegistryCoordinator.OperatorStatus"}},"id":8946,"nodeType":"ExpressionStatement","src":"27169:49:29"},{"expression":{"arguments":[{"id":8950,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8855,"src":"27273:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8947,"name":"serviceManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7790,"src":"27232:14:29","typeDescriptions":{"typeIdentifier":"t_contract$_IServiceManager_$12591","typeString":"contract IServiceManager"}},"id":8949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"deregisterOperatorFromAVS","nodeType":"MemberAccess","referencedDeclaration":12574,"src":"27232:40:29","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":8951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27232:50:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8952,"nodeType":"ExpressionStatement","src":"27232:50:29"},{"eventCall":{"arguments":[{"id":8954,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8855,"src":"27322:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8955,"name":"operatorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8868,"src":"27332:10:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8953,"name":"OperatorDeregistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12324,"src":"27301:20:29","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32)"}},"id":8956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27301:42:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8957,"nodeType":"EmitStatement","src":"27296:47:29"}]}},{"expression":{"arguments":[{"id":8963,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8855,"src":"27466:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8964,"name":"quorumNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8857,"src":"27476:13:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":8960,"name":"blsApkRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7794,"src":"27432:14:29","typeDescriptions":{"typeIdentifier":"t_contract$_IBLSApkRegistry_$12091","typeString":"contract IBLSApkRegistry"}},"id":8962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"deregisterOperator","nodeType":"MemberAccess","referencedDeclaration":11984,"src":"27432:33:29","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory) external"}},"id":8965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27432:58:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8966,"nodeType":"ExpressionStatement","src":"27432:58:29"},{"expression":{"arguments":[{"id":8970,"name":"operatorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8868,"src":"27533:10:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8971,"name":"quorumNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8857,"src":"27545:13:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":8967,"name":"stakeRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7798,"src":"27500:13:29","typeDescriptions":{"typeIdentifier":"t_contract$_IStakeRegistry_$12942","typeString":"contract IStakeRegistry"}},"id":8969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"deregisterOperator","nodeType":"MemberAccess","referencedDeclaration":12703,"src":"27500:32:29","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes32,bytes memory) external"}},"id":8972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27500:59:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8973,"nodeType":"ExpressionStatement","src":"27500:59:29"},{"expression":{"arguments":[{"id":8977,"name":"operatorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8868,"src":"27602:10:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8978,"name":"quorumNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8857,"src":"27614:13:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":8974,"name":"indexRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7802,"src":"27569:13:29","typeDescriptions":{"typeIdentifier":"t_contract$_IIndexRegistry_$12290","typeString":"contract IIndexRegistry"}},"id":8976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"deregisterOperator","nodeType":"MemberAccess","referencedDeclaration":12240,"src":"27569:32:29","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes32,bytes memory) external"}},"id":8979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27569:59:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8980,"nodeType":"ExpressionStatement","src":"27569:59:29"}]},"documentation":{"id":8853,"nodeType":"StructuredDocumentation","src":"25098:235:29","text":" @dev Deregister the operator from one or more quorums\n This method updates the operator's quorum bitmap and status, then deregisters\n the operator with the BLSApkRegistry, IndexRegistry, and StakeRegistry"},"implemented":true,"kind":"function","modifiers":[],"name":"_deregisterOperator","nameLocation":"25347:19:29","parameters":{"id":8858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8855,"mutability":"mutable","name":"operator","nameLocation":"25384:8:29","nodeType":"VariableDeclaration","scope":8982,"src":"25376:16:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8854,"name":"address","nodeType":"ElementaryTypeName","src":"25376:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8857,"mutability":"mutable","name":"quorumNumbers","nameLocation":"25416:13:29","nodeType":"VariableDeclaration","scope":8982,"src":"25403:26:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8856,"name":"bytes","nodeType":"ElementaryTypeName","src":"25403:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"25366:69:29"},"returnParameters":{"id":8859,"nodeType":"ParameterList","parameters":[],"src":"25453:0:29"},"scope":9739,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":9030,"nodeType":"FunctionDefinition","src":"27820:631:29","nodes":[],"body":{"id":9029,"nodeType":"Block","src":"27966:485:29","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_OperatorStatus_$12354","typeString":"enum IRegistryCoordinator.OperatorStatus"},"id":8997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8993,"name":"operatorInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8988,"src":"27980:12:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorInfo_$12360_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorInfo memory"}},"id":8994,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"status","nodeType":"MemberAccess","referencedDeclaration":12359,"src":"27980:19:29","typeDescriptions":{"typeIdentifier":"t_enum$_OperatorStatus_$12354","typeString":"enum IRegistryCoordinator.OperatorStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":8995,"name":"OperatorStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12354,"src":"28003:14:29","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_OperatorStatus_$12354_$","typeString":"type(enum IRegistryCoordinator.OperatorStatus)"}},"id":8996,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"REGISTERED","nodeType":"MemberAccess","referencedDeclaration":12352,"src":"28003:25:29","typeDescriptions":{"typeIdentifier":"t_enum$_OperatorStatus_$12354","typeString":"enum IRegistryCoordinator.OperatorStatus"}},"src":"27980:48:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9000,"nodeType":"IfStatement","src":"27976:85:29","trueBody":{"id":8999,"nodeType":"Block","src":"28030:31:29","statements":[{"functionReturnParameters":8992,"id":8998,"nodeType":"Return","src":"28044:7:29"}]}},{"assignments":[9002],"declarations":[{"constant":false,"id":9002,"mutability":"mutable","name":"operatorId","nameLocation":"28078:10:29","nodeType":"VariableDeclaration","scope":9029,"src":"28070:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9001,"name":"bytes32","nodeType":"ElementaryTypeName","src":"28070:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9005,"initialValue":{"expression":{"id":9003,"name":"operatorInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8988,"src":"28091:12:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorInfo_$12360_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorInfo memory"}},"id":9004,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"operatorId","nodeType":"MemberAccess","referencedDeclaration":12356,"src":"28091:23:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"28070:44:29"},{"assignments":[9007],"declarations":[{"constant":false,"id":9007,"mutability":"mutable","name":"quorumsToRemove","nameLocation":"28132:15:29","nodeType":"VariableDeclaration","scope":9029,"src":"28124:23:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"},"typeName":{"id":9006,"name":"uint192","nodeType":"ElementaryTypeName","src":"28124:7:29","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"visibility":"internal"}],"id":9014,"initialValue":{"arguments":[{"id":9010,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8985,"src":"28184:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9011,"name":"operatorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9002,"src":"28194:10:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9012,"name":"quorumsToUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8990,"src":"28206:15:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":9008,"name":"stakeRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7798,"src":"28150:13:29","typeDescriptions":{"typeIdentifier":"t_contract$_IStakeRegistry_$12942","typeString":"contract IStakeRegistry"}},"id":9009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"updateOperatorStake","nodeType":"MemberAccess","referencedDeclaration":12941,"src":"28150:33:29","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_uint192_$","typeString":"function (address,bytes32,bytes memory) external returns (uint192)"}},"id":9013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28150:72:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"nodeType":"VariableDeclarationStatement","src":"28124:98:29"},{"condition":{"id":9018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"28237:26:29","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":9015,"name":"quorumsToRemove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9007,"src":"28238:15:29","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"id":9016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isEmpty","nodeType":"MemberAccess","referencedDeclaration":14327,"src":"28238:23:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$","typeString":"function (uint256) pure returns (bool)"}},"id":9017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28238:25:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9028,"nodeType":"IfStatement","src":"28233:212:29","trueBody":{"id":9027,"nodeType":"Block","src":"28265:180:29","statements":[{"expression":{"arguments":[{"id":9020,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8985,"src":"28327:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":9023,"name":"quorumsToRemove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9007,"src":"28399:15:29","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint192","typeString":"uint192"}],"expression":{"id":9021,"name":"BitmapUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14393,"src":"28368:11:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BitmapUtils_$14393_$","typeString":"type(library BitmapUtils)"}},"id":9022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"bitmapToBytesArray","nodeType":"MemberAccess","referencedDeclaration":14245,"src":"28368:30:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":9024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28368:47:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9019,"name":"_deregisterOperator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8982,"src":"28279:19:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":9025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["operator","quorumNumbers"],"nodeType":"FunctionCall","src":"28279:151:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9026,"nodeType":"ExpressionStatement","src":"28279:151:29"}]}}]},"documentation":{"id":8983,"nodeType":"StructuredDocumentation","src":"27641:174:29","text":" @notice update operator stake for specified quorumsToUpdate, and deregister if necessary\n does nothing if operator is not registered for any quorums."},"implemented":true,"kind":"function","modifiers":[],"name":"_updateOperator","nameLocation":"27829:15:29","parameters":{"id":8991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8985,"mutability":"mutable","name":"operator","nameLocation":"27862:8:29","nodeType":"VariableDeclaration","scope":9030,"src":"27854:16:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8984,"name":"address","nodeType":"ElementaryTypeName","src":"27854:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8988,"mutability":"mutable","name":"operatorInfo","nameLocation":"27900:12:29","nodeType":"VariableDeclaration","scope":9030,"src":"27880:32:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorInfo_$12360_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorInfo"},"typeName":{"id":8987,"nodeType":"UserDefinedTypeName","pathNode":{"id":8986,"name":"OperatorInfo","nodeType":"IdentifierPath","referencedDeclaration":12360,"src":"27880:12:29"},"referencedDeclaration":12360,"src":"27880:12:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorInfo_$12360_storage_ptr","typeString":"struct IRegistryCoordinator.OperatorInfo"}},"visibility":"internal"},{"constant":false,"id":8990,"mutability":"mutable","name":"quorumsToUpdate","nameLocation":"27935:15:29","nodeType":"VariableDeclaration","scope":9030,"src":"27922:28:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8989,"name":"bytes","nodeType":"ElementaryTypeName","src":"27922:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"27844:112:29"},"returnParameters":{"id":8992,"nodeType":"ParameterList","parameters":[],"src":"27966:0:29"},"scope":9739,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":9049,"nodeType":"FunctionDefinition","src":"28655:214:29","nodes":[],"body":{"id":9048,"nodeType":"Block","src":"28777:92:29","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint96","typeString":"uint96"},"id":9046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint96","typeString":"uint96"},"id":9044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9041,"name":"operatorStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9033,"src":"28794:13:29","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":9042,"name":"setParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9036,"src":"28810:9:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorSetParam_$12374_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorSetParam memory"}},"id":9043,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"kickBIPsOfOperatorStake","nodeType":"MemberAccess","referencedDeclaration":12371,"src":"28810:33:29","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"28794:49:29","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":9045,"name":"BIPS_DENOMINATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7770,"src":"28846:16:29","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"28794:68:29","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"functionReturnParameters":9040,"id":9047,"nodeType":"Return","src":"28787:75:29"}]},"documentation":{"id":9031,"nodeType":"StructuredDocumentation","src":"28457:193:29","text":" @notice Returns the stake threshold required for an incoming operator to replace an existing operator\n The incoming operator must have more stake than the return value."},"implemented":true,"kind":"function","modifiers":[],"name":"_individualKickThreshold","nameLocation":"28664:24:29","parameters":{"id":9037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9033,"mutability":"mutable","name":"operatorStake","nameLocation":"28696:13:29","nodeType":"VariableDeclaration","scope":9049,"src":"28689:20:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":9032,"name":"uint96","nodeType":"ElementaryTypeName","src":"28689:6:29","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"},{"constant":false,"id":9036,"mutability":"mutable","name":"setParams","nameLocation":"28735:9:29","nodeType":"VariableDeclaration","scope":9049,"src":"28711:33:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorSetParam_$12374_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorSetParam"},"typeName":{"id":9035,"nodeType":"UserDefinedTypeName","pathNode":{"id":9034,"name":"OperatorSetParam","nodeType":"IdentifierPath","referencedDeclaration":12374,"src":"28711:16:29"},"referencedDeclaration":12374,"src":"28711:16:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorSetParam_$12374_storage_ptr","typeString":"struct IRegistryCoordinator.OperatorSetParam"}},"visibility":"internal"}],"src":"28688:57:29"},"returnParameters":{"id":9040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9039,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9049,"src":"28769:6:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":9038,"name":"uint96","nodeType":"ElementaryTypeName","src":"28769:6:29","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"28768:8:29"},"scope":9739,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":9068,"nodeType":"FunctionDefinition","src":"29077:200:29","nodes":[],"body":{"id":9067,"nodeType":"Block","src":"29191:86:29","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint96","typeString":"uint96"},"id":9065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint96","typeString":"uint96"},"id":9063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9060,"name":"totalStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9052,"src":"29208:10:29","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":9061,"name":"setParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9055,"src":"29221:9:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorSetParam_$12374_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorSetParam memory"}},"id":9062,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"kickBIPsOfTotalStake","nodeType":"MemberAccess","referencedDeclaration":12373,"src":"29221:30:29","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"29208:43:29","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":9064,"name":"BIPS_DENOMINATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7770,"src":"29254:16:29","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"29208:62:29","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"functionReturnParameters":9059,"id":9066,"nodeType":"Return","src":"29201:69:29"}]},"documentation":{"id":9050,"nodeType":"StructuredDocumentation","src":"28875:197:29","text":" @notice Returns the total stake threshold required for an operator to remain in a quorum.\n The operator must have at least the returned stake amount to keep their position."},"implemented":true,"kind":"function","modifiers":[],"name":"_totalKickThreshold","nameLocation":"29086:19:29","parameters":{"id":9056,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9052,"mutability":"mutable","name":"totalStake","nameLocation":"29113:10:29","nodeType":"VariableDeclaration","scope":9068,"src":"29106:17:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":9051,"name":"uint96","nodeType":"ElementaryTypeName","src":"29106:6:29","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"},{"constant":false,"id":9055,"mutability":"mutable","name":"setParams","nameLocation":"29149:9:29","nodeType":"VariableDeclaration","scope":9068,"src":"29125:33:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorSetParam_$12374_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorSetParam"},"typeName":{"id":9054,"nodeType":"UserDefinedTypeName","pathNode":{"id":9053,"name":"OperatorSetParam","nodeType":"IdentifierPath","referencedDeclaration":12374,"src":"29125:16:29"},"referencedDeclaration":12374,"src":"29125:16:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorSetParam_$12374_storage_ptr","typeString":"struct IRegistryCoordinator.OperatorSetParam"}},"visibility":"internal"}],"src":"29105:54:29"},"returnParameters":{"id":9059,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9058,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9068,"src":"29183:6:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":9057,"name":"uint96","nodeType":"ElementaryTypeName","src":"29183:6:29","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"29182:8:29"},"scope":9739,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":9123,"nodeType":"FunctionDefinition","src":"29400:1044:29","nodes":[],"body":{"id":9122,"nodeType":"Block","src":"29616:828:29","nodes":[],"statements":[{"expression":{"arguments":[{"id":9086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"29689:53:29","subExpression":{"baseExpression":{"id":9082,"name":"isChurnApproverSaltUsed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7829,"src":"29690:23:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":9085,"indexExpression":{"expression":{"id":9083,"name":"churnApproverSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9078,"src":"29714:22:29","typeDescriptions":{"typeIdentifier":"t_struct$_SignatureWithSaltAndExpiry_$1558_memory_ptr","typeString":"struct ISignatureUtils.SignatureWithSaltAndExpiry memory"}},"id":9084,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"salt","nodeType":"MemberAccess","referencedDeclaration":1555,"src":"29714:27:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29690:52:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5265676973747279436f6f7264696e61746f722e5f766572696679436875726e417070726f7665725369676e61747572653a20636875726e417070726f7665722073616c7420616c72656164792075736564","id":9087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29744:84:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_15664956970e26163f5364f1a40f7e07c1642fb5fe1b22269b0570f983af317a","typeString":"literal_string \"RegistryCoordinator._verifyChurnApproverSignature: churnApprover salt already used\""},"value":"RegistryCoordinator._verifyChurnApproverSignature: churnApprover salt already used"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_15664956970e26163f5364f1a40f7e07c1642fb5fe1b22269b0570f983af317a","typeString":"literal_string \"RegistryCoordinator._verifyChurnApproverSignature: churnApprover salt already used\""}],"id":9081,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"29681:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29681:148:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9089,"nodeType":"ExpressionStatement","src":"29681:148:29"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":9091,"name":"churnApproverSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9078,"src":"29847:22:29","typeDescriptions":{"typeIdentifier":"t_struct$_SignatureWithSaltAndExpiry_$1558_memory_ptr","typeString":"struct ISignatureUtils.SignatureWithSaltAndExpiry memory"}},"id":9092,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"expiry","nodeType":"MemberAccess","referencedDeclaration":1557,"src":"29847:29:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":9093,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"29880:5:29","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":9094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"29880:15:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29847:48:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5265676973747279436f6f7264696e61746f722e5f766572696679436875726e417070726f7665725369676e61747572653a20636875726e417070726f766572207369676e61747572652065787069726564","id":9096,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29897:84:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_2ef1e200f854553305b38d9f69d208aa83d8cc49abc4dcc2f493951136279722","typeString":"literal_string \"RegistryCoordinator._verifyChurnApproverSignature: churnApprover signature expired\""},"value":"RegistryCoordinator._verifyChurnApproverSignature: churnApprover signature expired"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2ef1e200f854553305b38d9f69d208aa83d8cc49abc4dcc2f493951136279722","typeString":"literal_string \"RegistryCoordinator._verifyChurnApproverSignature: churnApprover signature expired\""}],"id":9090,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"29839:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29839:143:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9098,"nodeType":"ExpressionStatement","src":"29839:143:29"},{"expression":{"id":9104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":9099,"name":"isChurnApproverSaltUsed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7829,"src":"30029:23:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":9102,"indexExpression":{"expression":{"id":9100,"name":"churnApproverSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9078,"src":"30053:22:29","typeDescriptions":{"typeIdentifier":"t_struct$_SignatureWithSaltAndExpiry_$1558_memory_ptr","typeString":"struct ISignatureUtils.SignatureWithSaltAndExpiry memory"}},"id":9101,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"salt","nodeType":"MemberAccess","referencedDeclaration":1555,"src":"30053:27:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"30029:52:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":9103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"30084:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"30029:59:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9105,"nodeType":"ExpressionStatement","src":"30029:59:29"},{"expression":{"arguments":[{"id":9109,"name":"churnApprover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7841,"src":"30209:13:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":9111,"name":"registeringOperatorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9071,"src":"30278:21:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9112,"name":"operatorKickParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9075,"src":"30301:18:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OperatorKickParam_$12379_memory_ptr_$dyn_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorKickParam memory[] memory"}},{"expression":{"id":9113,"name":"churnApproverSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9078,"src":"30321:22:29","typeDescriptions":{"typeIdentifier":"t_struct$_SignatureWithSaltAndExpiry_$1558_memory_ptr","typeString":"struct ISignatureUtils.SignatureWithSaltAndExpiry memory"}},"id":9114,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"salt","nodeType":"MemberAccess","referencedDeclaration":1555,"src":"30321:27:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":9115,"name":"churnApproverSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9078,"src":"30350:22:29","typeDescriptions":{"typeIdentifier":"t_struct$_SignatureWithSaltAndExpiry_$1558_memory_ptr","typeString":"struct ISignatureUtils.SignatureWithSaltAndExpiry memory"}},"id":9116,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"expiry","nodeType":"MemberAccess","referencedDeclaration":1557,"src":"30350:29:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_array$_t_struct$_OperatorKickParam_$12379_memory_ptr_$dyn_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorKickParam memory[] memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9110,"name":"calculateOperatorChurnApprovalDigestHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9701,"src":"30237:40:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_array$_t_struct$_OperatorKickParam_$12379_memory_ptr_$dyn_memory_ptr_$_t_bytes32_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (bytes32,struct IRegistryCoordinator.OperatorKickParam memory[] memory,bytes32,uint256) view returns (bytes32)"}},"id":9117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30237:143:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":9118,"name":"churnApproverSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9078,"src":"30395:22:29","typeDescriptions":{"typeIdentifier":"t_struct$_SignatureWithSaltAndExpiry_$1558_memory_ptr","typeString":"struct ISignatureUtils.SignatureWithSaltAndExpiry memory"}},"id":9119,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"signature","nodeType":"MemberAccess","referencedDeclaration":1553,"src":"30395:32:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":9106,"name":"EIP1271SignatureUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2920,"src":"30151:21:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EIP1271SignatureUtils_$2920_$","typeString":"type(library EIP1271SignatureUtils)"}},"id":9108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"checkSignature_EIP1271","nodeType":"MemberAccess","referencedDeclaration":2919,"src":"30151:44:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes32,bytes memory) view"}},"id":9120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30151:286:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9121,"nodeType":"ExpressionStatement","src":"30151:286:29"}]},"documentation":{"id":9069,"nodeType":"StructuredDocumentation","src":"29283:112:29","text":"@notice verifies churnApprover's signature on operator churn approval and increments the churnApprover nonce"},"implemented":true,"kind":"function","modifiers":[],"name":"_verifyChurnApproverSignature","nameLocation":"29409:29:29","parameters":{"id":9079,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9071,"mutability":"mutable","name":"registeringOperatorId","nameLocation":"29456:21:29","nodeType":"VariableDeclaration","scope":9123,"src":"29448:29:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9070,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29448:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9075,"mutability":"mutable","name":"operatorKickParams","nameLocation":"29515:18:29","nodeType":"VariableDeclaration","scope":9123,"src":"29488:45:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OperatorKickParam_$12379_memory_ptr_$dyn_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorKickParam[]"},"typeName":{"baseType":{"id":9073,"nodeType":"UserDefinedTypeName","pathNode":{"id":9072,"name":"OperatorKickParam","nodeType":"IdentifierPath","referencedDeclaration":12379,"src":"29488:17:29"},"referencedDeclaration":12379,"src":"29488:17:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorKickParam_$12379_storage_ptr","typeString":"struct IRegistryCoordinator.OperatorKickParam"}},"id":9074,"nodeType":"ArrayTypeName","src":"29488:19:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OperatorKickParam_$12379_storage_$dyn_storage_ptr","typeString":"struct IRegistryCoordinator.OperatorKickParam[]"}},"visibility":"internal"},{"constant":false,"id":9078,"mutability":"mutable","name":"churnApproverSignature","nameLocation":"29578:22:29","nodeType":"VariableDeclaration","scope":9123,"src":"29544:56:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SignatureWithSaltAndExpiry_$1558_memory_ptr","typeString":"struct ISignatureUtils.SignatureWithSaltAndExpiry"},"typeName":{"id":9077,"nodeType":"UserDefinedTypeName","pathNode":{"id":9076,"name":"SignatureWithSaltAndExpiry","nodeType":"IdentifierPath","referencedDeclaration":1558,"src":"29544:26:29"},"referencedDeclaration":1558,"src":"29544:26:29","typeDescriptions":{"typeIdentifier":"t_struct$_SignatureWithSaltAndExpiry_$1558_storage_ptr","typeString":"struct ISignatureUtils.SignatureWithSaltAndExpiry"}},"visibility":"internal"}],"src":"29438:168:29"},"returnParameters":{"id":9080,"nodeType":"ParameterList","parameters":[],"src":"29616:0:29"},"scope":9739,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":9183,"nodeType":"FunctionDefinition","src":"30540:894:29","nodes":[],"body":{"id":9182,"nodeType":"Block","src":"30721:713:29","nodes":[],"statements":[{"assignments":[9137],"declarations":[{"constant":false,"id":9137,"mutability":"mutable","name":"prevQuorumCount","nameLocation":"30816:15:29","nodeType":"VariableDeclaration","scope":9182,"src":"30810:21:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":9136,"name":"uint8","nodeType":"ElementaryTypeName","src":"30810:5:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":9139,"initialValue":{"id":9138,"name":"quorumCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7805,"src":"30834:11:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"30810:35:29"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":9143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9141,"name":"prevQuorumCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9137,"src":"30863:15:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":9142,"name":"MAX_QUORUM_COUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7786,"src":"30881:16:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"30863:34:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5265676973747279436f6f7264696e61746f722e63726561746551756f72756d3a206d61782071756f72756d732072656163686564","id":9144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30899:55:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_5bd247b52818b33e6b59711968e5a6325c136dc49fba425f2c12af6cc877bc7a","typeString":"literal_string \"RegistryCoordinator.createQuorum: max quorums reached\""},"value":"RegistryCoordinator.createQuorum: max quorums reached"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5bd247b52818b33e6b59711968e5a6325c136dc49fba425f2c12af6cc877bc7a","typeString":"literal_string \"RegistryCoordinator.createQuorum: max quorums reached\""}],"id":9140,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30855:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30855:100:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9146,"nodeType":"ExpressionStatement","src":"30855:100:29"},{"expression":{"id":9151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9147,"name":"quorumCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7805,"src":"30965:11:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":9150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9148,"name":"prevQuorumCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9137,"src":"30979:15:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":9149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30997:1:29","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"30979:19:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"30965:33:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":9152,"nodeType":"ExpressionStatement","src":"30965:33:29"},{"assignments":[9154],"declarations":[{"constant":false,"id":9154,"mutability":"mutable","name":"quorumNumber","nameLocation":"31080:12:29","nodeType":"VariableDeclaration","scope":9182,"src":"31074:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":9153,"name":"uint8","nodeType":"ElementaryTypeName","src":"31074:5:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":9156,"initialValue":{"id":9155,"name":"prevQuorumCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9137,"src":"31095:15:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"31074:36:29"},{"expression":{"arguments":[{"id":9158,"name":"quorumNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9154,"src":"31202:12:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":9159,"name":"operatorSetParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9127,"src":"31216:17:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorSetParam_$12374_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorSetParam memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_struct$_OperatorSetParam_$12374_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorSetParam memory"}],"id":9157,"name":"_setOperatorSetParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9352,"src":"31180:21:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint8_$_t_struct$_OperatorSetParam_$12374_memory_ptr_$returns$__$","typeString":"function (uint8,struct IRegistryCoordinator.OperatorSetParam memory)"}},"id":9160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31180:54:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9161,"nodeType":"ExpressionStatement","src":"31180:54:29"},{"expression":{"arguments":[{"id":9165,"name":"quorumNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9154,"src":"31275:12:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":9166,"name":"minimumStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9129,"src":"31289:12:29","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},{"id":9167,"name":"strategyParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9133,"src":"31303:14:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StrategyParams_$12632_memory_ptr_$dyn_memory_ptr","typeString":"struct IStakeRegistry.StrategyParams memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint96","typeString":"uint96"},{"typeIdentifier":"t_array$_t_struct$_StrategyParams_$12632_memory_ptr_$dyn_memory_ptr","typeString":"struct IStakeRegistry.StrategyParams memory[] memory"}],"expression":{"id":9162,"name":"stakeRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7798,"src":"31244:13:29","typeDescriptions":{"typeIdentifier":"t_contract$_IStakeRegistry_$12942","typeString":"contract IStakeRegistry"}},"id":9164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"initializeQuorum","nodeType":"MemberAccess","referencedDeclaration":12715,"src":"31244:30:29","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint8_$_t_uint96_$_t_array$_t_struct$_StrategyParams_$12632_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (uint8,uint96,struct IStakeRegistry.StrategyParams memory[] memory) external"}},"id":9168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31244:74:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9169,"nodeType":"ExpressionStatement","src":"31244:74:29"},{"expression":{"arguments":[{"id":9173,"name":"quorumNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9154,"src":"31359:12:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":9170,"name":"indexRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7802,"src":"31328:13:29","typeDescriptions":{"typeIdentifier":"t_contract$_IIndexRegistry_$12290","typeString":"contract IIndexRegistry"}},"id":9172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"initializeQuorum","nodeType":"MemberAccess","referencedDeclaration":12246,"src":"31328:30:29","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8) external"}},"id":9174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31328:44:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9175,"nodeType":"ExpressionStatement","src":"31328:44:29"},{"expression":{"arguments":[{"id":9179,"name":"quorumNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9154,"src":"31414:12:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":9176,"name":"blsApkRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7794,"src":"31382:14:29","typeDescriptions":{"typeIdentifier":"t_contract$_IBLSApkRegistry_$12091","typeString":"contract IBLSApkRegistry"}},"id":9178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"initializeQuorum","nodeType":"MemberAccess","referencedDeclaration":11990,"src":"31382:31:29","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8) external"}},"id":9180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31382:45:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9181,"nodeType":"ExpressionStatement","src":"31382:45:29"}]},"documentation":{"id":9124,"nodeType":"StructuredDocumentation","src":"30450:85:29","text":" @notice Creates and initializes a quorum in each registry contract"},"implemented":true,"kind":"function","modifiers":[],"name":"_createQuorum","nameLocation":"30549:13:29","parameters":{"id":9134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9127,"mutability":"mutable","name":"operatorSetParams","nameLocation":"30596:17:29","nodeType":"VariableDeclaration","scope":9183,"src":"30572:41:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorSetParam_$12374_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorSetParam"},"typeName":{"id":9126,"nodeType":"UserDefinedTypeName","pathNode":{"id":9125,"name":"OperatorSetParam","nodeType":"IdentifierPath","referencedDeclaration":12374,"src":"30572:16:29"},"referencedDeclaration":12374,"src":"30572:16:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorSetParam_$12374_storage_ptr","typeString":"struct IRegistryCoordinator.OperatorSetParam"}},"visibility":"internal"},{"constant":false,"id":9129,"mutability":"mutable","name":"minimumStake","nameLocation":"30630:12:29","nodeType":"VariableDeclaration","scope":9183,"src":"30623:19:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":9128,"name":"uint96","nodeType":"ElementaryTypeName","src":"30623:6:29","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"},{"constant":false,"id":9133,"mutability":"mutable","name":"strategyParams","nameLocation":"30691:14:29","nodeType":"VariableDeclaration","scope":9183,"src":"30652:53:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StrategyParams_$12632_memory_ptr_$dyn_memory_ptr","typeString":"struct IStakeRegistry.StrategyParams[]"},"typeName":{"baseType":{"id":9131,"nodeType":"UserDefinedTypeName","pathNode":{"id":9130,"name":"IStakeRegistry.StrategyParams","nodeType":"IdentifierPath","referencedDeclaration":12632,"src":"30652:29:29"},"referencedDeclaration":12632,"src":"30652:29:29","typeDescriptions":{"typeIdentifier":"t_struct$_StrategyParams_$12632_storage_ptr","typeString":"struct IStakeRegistry.StrategyParams"}},"id":9132,"nodeType":"ArrayTypeName","src":"30652:31:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StrategyParams_$12632_storage_$dyn_storage_ptr","typeString":"struct IStakeRegistry.StrategyParams[]"}},"visibility":"internal"}],"src":"30562:149:29"},"returnParameters":{"id":9135,"nodeType":"ParameterList","parameters":[],"src":"30721:0:29"},"scope":9739,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":9273,"nodeType":"FunctionDefinition","src":"31613:1378:29","nodes":[],"body":{"id":9272,"nodeType":"Block","src":"31692:1299:29","nodes":[],"statements":[{"assignments":[9192],"declarations":[{"constant":false,"id":9192,"mutability":"mutable","name":"historyLength","nameLocation":"31711:13:29","nodeType":"VariableDeclaration","scope":9272,"src":"31703:21:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9191,"name":"uint256","nodeType":"ElementaryTypeName","src":"31703:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9197,"initialValue":{"expression":{"baseExpression":{"id":9193,"name":"_operatorBitmapHistory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7818,"src":"31727:22:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_array$_t_struct$_QuorumBitmapUpdate_$12367_storage_$dyn_storage_$","typeString":"mapping(bytes32 => struct IRegistryCoordinator.QuorumBitmapUpdate storage ref[] storage ref)"}},"id":9195,"indexExpression":{"id":9194,"name":"operatorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9186,"src":"31750:10:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"31727:34:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QuorumBitmapUpdate_$12367_storage_$dyn_storage","typeString":"struct IRegistryCoordinator.QuorumBitmapUpdate storage ref[] storage ref"}},"id":9196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"31727:41:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"31703:65:29"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9198,"name":"historyLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9192,"src":"31783:13:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":9199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31800:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"31783:18:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":9270,"nodeType":"Block","src":"32111:874:29","statements":[{"assignments":[9219],"declarations":[{"constant":false,"id":9219,"mutability":"mutable","name":"lastUpdate","nameLocation":"32222:10:29","nodeType":"VariableDeclaration","scope":9270,"src":"32195:37:29","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumBitmapUpdate_$12367_storage_ptr","typeString":"struct IRegistryCoordinator.QuorumBitmapUpdate"},"typeName":{"id":9218,"nodeType":"UserDefinedTypeName","pathNode":{"id":9217,"name":"QuorumBitmapUpdate","nodeType":"IdentifierPath","referencedDeclaration":12367,"src":"32195:18:29"},"referencedDeclaration":12367,"src":"32195:18:29","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumBitmapUpdate_$12367_storage_ptr","typeString":"struct IRegistryCoordinator.QuorumBitmapUpdate"}},"visibility":"internal"}],"id":9227,"initialValue":{"baseExpression":{"baseExpression":{"id":9220,"name":"_operatorBitmapHistory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7818,"src":"32235:22:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_array$_t_struct$_QuorumBitmapUpdate_$12367_storage_$dyn_storage_$","typeString":"mapping(bytes32 => struct IRegistryCoordinator.QuorumBitmapUpdate storage ref[] storage ref)"}},"id":9222,"indexExpression":{"id":9221,"name":"operatorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9186,"src":"32258:10:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"32235:34:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QuorumBitmapUpdate_$12367_storage_$dyn_storage","typeString":"struct IRegistryCoordinator.QuorumBitmapUpdate storage ref[] storage ref"}},"id":9226,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9223,"name":"historyLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9192,"src":"32270:13:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":9224,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32286:1:29","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"32270:17:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"32235:53:29","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumBitmapUpdate_$12367_storage","typeString":"struct IRegistryCoordinator.QuorumBitmapUpdate storage ref"}},"nodeType":"VariableDeclarationStatement","src":"32195:93:29"},{"condition":{"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"id":9235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":9228,"name":"lastUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9219,"src":"32510:10:29","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumBitmapUpdate_$12367_storage_ptr","typeString":"struct IRegistryCoordinator.QuorumBitmapUpdate storage pointer"}},"id":9229,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"updateBlockNumber","nodeType":"MemberAccess","referencedDeclaration":12362,"src":"32510:28:29","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"expression":{"id":9232,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"32549:5:29","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":9233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","src":"32549:12:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9231,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32542:6:29","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":9230,"name":"uint32","nodeType":"ElementaryTypeName","src":"32542:6:29","typeDescriptions":{}}},"id":9234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32542:20:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"32510:52:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" If the last update was made in the current block, update the entry.\n Otherwise, push a new entry and update the previous entry's \"next\" field","falseBody":{"id":9268,"nodeType":"Block","src":"32638:337:29","statements":[{"expression":{"id":9251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":9243,"name":"lastUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9219,"src":"32656:10:29","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumBitmapUpdate_$12367_storage_ptr","typeString":"struct IRegistryCoordinator.QuorumBitmapUpdate storage pointer"}},"id":9245,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"nextUpdateBlockNumber","nodeType":"MemberAccess","referencedDeclaration":12364,"src":"32656:32:29","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":9248,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"32698:5:29","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":9249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","src":"32698:12:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9247,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32691:6:29","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":9246,"name":"uint32","nodeType":"ElementaryTypeName","src":"32691:6:29","typeDescriptions":{}}},"id":9250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32691:20:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"32656:55:29","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":9252,"nodeType":"ExpressionStatement","src":"32656:55:29"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":9260,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"32836:5:29","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":9261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","src":"32836:12:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9259,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32829:6:29","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":9258,"name":"uint32","nodeType":"ElementaryTypeName","src":"32829:6:29","typeDescriptions":{}}},"id":9262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32829:20:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"hexValue":"30","id":9263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32894:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9264,"name":"newBitmap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9188,"src":"32931:9:29","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint192","typeString":"uint192"}],"id":9257,"name":"QuorumBitmapUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12367,"src":"32769:18:29","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_QuorumBitmapUpdate_$12367_storage_ptr_$","typeString":"type(struct IRegistryCoordinator.QuorumBitmapUpdate storage pointer)"}},"id":9265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["updateBlockNumber","nextUpdateBlockNumber","quorumBitmap"],"nodeType":"FunctionCall","src":"32769:190:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_QuorumBitmapUpdate_$12367_memory_ptr","typeString":"struct IRegistryCoordinator.QuorumBitmapUpdate memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QuorumBitmapUpdate_$12367_memory_ptr","typeString":"struct IRegistryCoordinator.QuorumBitmapUpdate memory"}],"expression":{"baseExpression":{"id":9253,"name":"_operatorBitmapHistory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7818,"src":"32729:22:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_array$_t_struct$_QuorumBitmapUpdate_$12367_storage_$dyn_storage_$","typeString":"mapping(bytes32 => struct IRegistryCoordinator.QuorumBitmapUpdate storage ref[] storage ref)"}},"id":9255,"indexExpression":{"id":9254,"name":"operatorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9186,"src":"32752:10:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"32729:34:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QuorumBitmapUpdate_$12367_storage_$dyn_storage","typeString":"struct IRegistryCoordinator.QuorumBitmapUpdate storage ref[] storage ref"}},"id":9256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"32729:39:29","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_QuorumBitmapUpdate_$12367_storage_$dyn_storage_ptr_$_t_struct$_QuorumBitmapUpdate_$12367_storage_$returns$__$bound_to$_t_array$_t_struct$_QuorumBitmapUpdate_$12367_storage_$dyn_storage_ptr_$","typeString":"function (struct IRegistryCoordinator.QuorumBitmapUpdate storage ref[] storage pointer,struct IRegistryCoordinator.QuorumBitmapUpdate storage ref)"}},"id":9266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32729:231:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9267,"nodeType":"ExpressionStatement","src":"32729:231:29"}]},"id":9269,"nodeType":"IfStatement","src":"32506:469:29","trueBody":{"id":9242,"nodeType":"Block","src":"32564:68:29","statements":[{"expression":{"id":9240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":9236,"name":"lastUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9219,"src":"32582:10:29","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumBitmapUpdate_$12367_storage_ptr","typeString":"struct IRegistryCoordinator.QuorumBitmapUpdate storage pointer"}},"id":9238,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"quorumBitmap","nodeType":"MemberAccess","referencedDeclaration":12366,"src":"32582:23:29","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9239,"name":"newBitmap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9188,"src":"32608:9:29","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"src":"32582:35:29","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"id":9241,"nodeType":"ExpressionStatement","src":"32582:35:29"}]}}]},"id":9271,"nodeType":"IfStatement","src":"31779:1206:29","trueBody":{"id":9216,"nodeType":"Block","src":"31803:302:29","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":9208,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"31982:5:29","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":9209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","src":"31982:12:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9207,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31975:6:29","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":9206,"name":"uint32","nodeType":"ElementaryTypeName","src":"31975:6:29","typeDescriptions":{}}},"id":9210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31975:20:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"hexValue":"30","id":9211,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32036:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9212,"name":"newBitmap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9188,"src":"32069:9:29","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint192","typeString":"uint192"}],"id":9205,"name":"QuorumBitmapUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12367,"src":"31919:18:29","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_QuorumBitmapUpdate_$12367_storage_ptr_$","typeString":"type(struct IRegistryCoordinator.QuorumBitmapUpdate storage pointer)"}},"id":9213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["updateBlockNumber","nextUpdateBlockNumber","quorumBitmap"],"nodeType":"FunctionCall","src":"31919:174:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_QuorumBitmapUpdate_$12367_memory_ptr","typeString":"struct IRegistryCoordinator.QuorumBitmapUpdate memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QuorumBitmapUpdate_$12367_memory_ptr","typeString":"struct IRegistryCoordinator.QuorumBitmapUpdate memory"}],"expression":{"baseExpression":{"id":9201,"name":"_operatorBitmapHistory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7818,"src":"31879:22:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_array$_t_struct$_QuorumBitmapUpdate_$12367_storage_$dyn_storage_$","typeString":"mapping(bytes32 => struct IRegistryCoordinator.QuorumBitmapUpdate storage ref[] storage ref)"}},"id":9203,"indexExpression":{"id":9202,"name":"operatorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9186,"src":"31902:10:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"31879:34:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QuorumBitmapUpdate_$12367_storage_$dyn_storage","typeString":"struct IRegistryCoordinator.QuorumBitmapUpdate storage ref[] storage ref"}},"id":9204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"31879:39:29","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_QuorumBitmapUpdate_$12367_storage_$dyn_storage_ptr_$_t_struct$_QuorumBitmapUpdate_$12367_storage_$returns$__$bound_to$_t_array$_t_struct$_QuorumBitmapUpdate_$12367_storage_$dyn_storage_ptr_$","typeString":"function (struct IRegistryCoordinator.QuorumBitmapUpdate storage ref[] storage pointer,struct IRegistryCoordinator.QuorumBitmapUpdate storage ref)"}},"id":9214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31879:215:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9215,"nodeType":"ExpressionStatement","src":"31879:215:29"}]}}]},"documentation":{"id":9184,"nodeType":"StructuredDocumentation","src":"31440:168:29","text":" @notice Record an update to an operator's quorum bitmap.\n @param newBitmap is the most up-to-date set of bitmaps the operator is registered for"},"implemented":true,"kind":"function","modifiers":[],"name":"_updateOperatorBitmap","nameLocation":"31622:21:29","parameters":{"id":9189,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9186,"mutability":"mutable","name":"operatorId","nameLocation":"31652:10:29","nodeType":"VariableDeclaration","scope":9273,"src":"31644:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9185,"name":"bytes32","nodeType":"ElementaryTypeName","src":"31644:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9188,"mutability":"mutable","name":"newBitmap","nameLocation":"31672:9:29","nodeType":"VariableDeclaration","scope":9273,"src":"31664:17:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"},"typeName":{"id":9187,"name":"uint192","nodeType":"ElementaryTypeName","src":"31664:7:29","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"visibility":"internal"}],"src":"31643:39:29"},"returnParameters":{"id":9190,"nodeType":"ParameterList","parameters":[],"src":"31692:0:29"},"scope":9739,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":9299,"nodeType":"FunctionDefinition","src":"33110:224:29","nodes":[],"body":{"id":9298,"nodeType":"Block","src":"33187:147:29","nodes":[],"statements":[{"assignments":[9282],"declarations":[{"constant":false,"id":9282,"mutability":"mutable","name":"initializedQuorumBitmap","nameLocation":"33205:23:29","nodeType":"VariableDeclaration","scope":9298,"src":"33197:31:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"},"typeName":{"id":9281,"name":"uint192","nodeType":"ElementaryTypeName","src":"33197:7:29","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"visibility":"internal"}],"id":9292,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":9285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33240:1:29","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":9286,"name":"quorumCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7805,"src":"33245:11:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"33240:16:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":9288,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33239:18:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":9289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33260:1:29","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"33239:22:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9284,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"33231:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_uint192_$","typeString":"type(uint192)"},"typeName":{"id":9283,"name":"uint192","nodeType":"ElementaryTypeName","src":"33231:7:29","typeDescriptions":{}}},"id":9291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33231:31:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"nodeType":"VariableDeclarationStatement","src":"33197:65:29"},{"expression":{"arguments":[{"id":9295,"name":"initializedQuorumBitmap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9282,"src":"33303:23:29","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint192","typeString":"uint192"}],"expression":{"id":9293,"name":"quorumBitmap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9276,"src":"33279:12:29","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"id":9294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isSubsetOf","nodeType":"MemberAccess","referencedDeclaration":14361,"src":"33279:23:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (bool)"}},"id":9296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33279:48:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":9280,"id":9297,"nodeType":"Return","src":"33272:55:29"}]},"documentation":{"id":9274,"nodeType":"StructuredDocumentation","src":"32997:107:29","text":" @notice Returns true iff all of the bits in `quorumBitmap` belong to initialized quorums"},"implemented":true,"kind":"function","modifiers":[],"name":"_quorumsAllExist","nameLocation":"33119:16:29","parameters":{"id":9277,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9276,"mutability":"mutable","name":"quorumBitmap","nameLocation":"33144:12:29","nodeType":"VariableDeclaration","scope":9299,"src":"33136:20:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"},"typeName":{"id":9275,"name":"uint192","nodeType":"ElementaryTypeName","src":"33136:7:29","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"visibility":"internal"}],"src":"33135:22:29"},"returnParameters":{"id":9280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9279,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9299,"src":"33181:4:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9278,"name":"bool","nodeType":"ElementaryTypeName","src":"33181:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"33180:6:29"},"scope":9739,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":9332,"nodeType":"FunctionDefinition","src":"33470:336:29","nodes":[],"body":{"id":9331,"nodeType":"Block","src":"33554:252:29","nodes":[],"statements":[{"assignments":[9308],"declarations":[{"constant":false,"id":9308,"mutability":"mutable","name":"historyLength","nameLocation":"33572:13:29","nodeType":"VariableDeclaration","scope":9331,"src":"33564:21:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9307,"name":"uint256","nodeType":"ElementaryTypeName","src":"33564:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9313,"initialValue":{"expression":{"baseExpression":{"id":9309,"name":"_operatorBitmapHistory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7818,"src":"33588:22:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_array$_t_struct$_QuorumBitmapUpdate_$12367_storage_$dyn_storage_$","typeString":"mapping(bytes32 => struct IRegistryCoordinator.QuorumBitmapUpdate storage ref[] storage ref)"}},"id":9311,"indexExpression":{"id":9310,"name":"operatorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9302,"src":"33611:10:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"33588:34:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QuorumBitmapUpdate_$12367_storage_$dyn_storage","typeString":"struct IRegistryCoordinator.QuorumBitmapUpdate storage ref[] storage ref"}},"id":9312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"33588:41:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"33564:65:29"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9314,"name":"historyLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9308,"src":"33643:13:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":9315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33660:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"33643:18:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":9329,"nodeType":"Block","src":"33702:98:29","statements":[{"expression":{"expression":{"baseExpression":{"baseExpression":{"id":9320,"name":"_operatorBitmapHistory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7818,"src":"33723:22:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_array$_t_struct$_QuorumBitmapUpdate_$12367_storage_$dyn_storage_$","typeString":"mapping(bytes32 => struct IRegistryCoordinator.QuorumBitmapUpdate storage ref[] storage ref)"}},"id":9322,"indexExpression":{"id":9321,"name":"operatorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9302,"src":"33746:10:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"33723:34:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QuorumBitmapUpdate_$12367_storage_$dyn_storage","typeString":"struct IRegistryCoordinator.QuorumBitmapUpdate storage ref[] storage ref"}},"id":9326,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9323,"name":"historyLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9308,"src":"33758:13:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":9324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33774:1:29","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"33758:17:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"33723:53:29","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumBitmapUpdate_$12367_storage","typeString":"struct IRegistryCoordinator.QuorumBitmapUpdate storage ref"}},"id":9327,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"quorumBitmap","nodeType":"MemberAccess","referencedDeclaration":12366,"src":"33723:66:29","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"functionReturnParameters":9306,"id":9328,"nodeType":"Return","src":"33716:73:29"}]},"id":9330,"nodeType":"IfStatement","src":"33639:161:29","trueBody":{"id":9319,"nodeType":"Block","src":"33663:33:29","statements":[{"expression":{"hexValue":"30","id":9317,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33684:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":9306,"id":9318,"nodeType":"Return","src":"33677:8:29"}]}}]},"documentation":{"id":9300,"nodeType":"StructuredDocumentation","src":"33340:125:29","text":"@notice Get the most recent bitmap for the operator, returning an empty bitmap if\n the operator is not registered."},"implemented":true,"kind":"function","modifiers":[],"name":"_currentOperatorBitmap","nameLocation":"33479:22:29","parameters":{"id":9303,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9302,"mutability":"mutable","name":"operatorId","nameLocation":"33510:10:29","nodeType":"VariableDeclaration","scope":9332,"src":"33502:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9301,"name":"bytes32","nodeType":"ElementaryTypeName","src":"33502:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"33501:20:29"},"returnParameters":{"id":9306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9305,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9332,"src":"33545:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"},"typeName":{"id":9304,"name":"uint192","nodeType":"ElementaryTypeName","src":"33545:7:29","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"visibility":"internal"}],"src":"33544:9:29"},"scope":9739,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":9352,"nodeType":"FunctionDefinition","src":"33812:239:29","nodes":[],"body":{"id":9351,"nodeType":"Block","src":"33915:136:29","nodes":[],"statements":[{"expression":{"id":9344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":9340,"name":"_quorumParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7811,"src":"33925:13:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_struct$_OperatorSetParam_$12374_storage_$","typeString":"mapping(uint8 => struct IRegistryCoordinator.OperatorSetParam storage ref)"}},"id":9342,"indexExpression":{"id":9341,"name":"quorumNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9334,"src":"33939:12:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"33925:27:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorSetParam_$12374_storage","typeString":"struct IRegistryCoordinator.OperatorSetParam storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9343,"name":"operatorSetParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9337,"src":"33955:17:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorSetParam_$12374_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorSetParam memory"}},"src":"33925:47:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorSetParam_$12374_storage","typeString":"struct IRegistryCoordinator.OperatorSetParam storage ref"}},"id":9345,"nodeType":"ExpressionStatement","src":"33925:47:29"},{"eventCall":{"arguments":[{"id":9347,"name":"quorumNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9334,"src":"34012:12:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":9348,"name":"operatorSetParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9337,"src":"34026:17:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorSetParam_$12374_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorSetParam memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_struct$_OperatorSetParam_$12374_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorSetParam memory"}],"id":9346,"name":"OperatorSetParamsUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12331,"src":"33987:24:29","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$_t_struct$_OperatorSetParam_$12374_memory_ptr_$returns$__$","typeString":"function (uint8,struct IRegistryCoordinator.OperatorSetParam memory)"}},"id":9349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33987:57:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9350,"nodeType":"EmitStatement","src":"33982:62:29"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_setOperatorSetParams","nameLocation":"33821:21:29","parameters":{"id":9338,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9334,"mutability":"mutable","name":"quorumNumber","nameLocation":"33849:12:29","nodeType":"VariableDeclaration","scope":9352,"src":"33843:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":9333,"name":"uint8","nodeType":"ElementaryTypeName","src":"33843:5:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":9337,"mutability":"mutable","name":"operatorSetParams","nameLocation":"33887:17:29","nodeType":"VariableDeclaration","scope":9352,"src":"33863:41:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorSetParam_$12374_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorSetParam"},"typeName":{"id":9336,"nodeType":"UserDefinedTypeName","pathNode":{"id":9335,"name":"OperatorSetParam","nodeType":"IdentifierPath","referencedDeclaration":12374,"src":"33863:16:29"},"referencedDeclaration":12374,"src":"33863:16:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorSetParam_$12374_storage_ptr","typeString":"struct IRegistryCoordinator.OperatorSetParam"}},"visibility":"internal"}],"src":"33842:63:29"},"returnParameters":{"id":9339,"nodeType":"ParameterList","parameters":[],"src":"33915:0:29"},"scope":9739,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":9367,"nodeType":"FunctionDefinition","src":"34061:179:29","nodes":[],"body":{"id":9366,"nodeType":"Block","src":"34123:117:29","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":9358,"name":"churnApprover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7841,"src":"34159:13:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9359,"name":"newChurnApprover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9354,"src":"34174:16:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":9357,"name":"ChurnApproverUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12337,"src":"34138:20:29","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":9360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"34138:53:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9361,"nodeType":"EmitStatement","src":"34133:58:29"},{"expression":{"id":9364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9362,"name":"churnApprover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7841,"src":"34201:13:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9363,"name":"newChurnApprover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9354,"src":"34217:16:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"34201:32:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9365,"nodeType":"ExpressionStatement","src":"34201:32:29"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_setChurnApprover","nameLocation":"34070:17:29","parameters":{"id":9355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9354,"mutability":"mutable","name":"newChurnApprover","nameLocation":"34096:16:29","nodeType":"VariableDeclaration","scope":9367,"src":"34088:24:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9353,"name":"address","nodeType":"ElementaryTypeName","src":"34088:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"34087:26:29"},"returnParameters":{"id":9356,"nodeType":"ParameterList","parameters":[],"src":"34123:0:29"},"scope":9739,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":9382,"nodeType":"FunctionDefinition","src":"34246:137:29","nodes":[],"body":{"id":9381,"nodeType":"Block","src":"34296:87:29","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":9373,"name":"ejector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7844,"src":"34326:7:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9374,"name":"newEjector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9369,"src":"34335:10:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":9372,"name":"EjectorUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12343,"src":"34311:14:29","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":9375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"34311:35:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9376,"nodeType":"EmitStatement","src":"34306:40:29"},{"expression":{"id":9379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9377,"name":"ejector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7844,"src":"34356:7:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9378,"name":"newEjector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9369,"src":"34366:10:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"34356:20:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9380,"nodeType":"ExpressionStatement","src":"34356:20:29"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_setEjector","nameLocation":"34255:11:29","parameters":{"id":9370,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9369,"mutability":"mutable","name":"newEjector","nameLocation":"34275:10:29","nodeType":"VariableDeclaration","scope":9382,"src":"34267:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9368,"name":"address","nodeType":"ElementaryTypeName","src":"34267:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"34266:20:29"},"returnParameters":{"id":9371,"nodeType":"ParameterList","parameters":[],"src":"34296:0:29"},"scope":9739,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":9396,"nodeType":"FunctionDefinition","src":"34680:149:29","nodes":[],"body":{"id":9395,"nodeType":"Block","src":"34778:51:29","nodes":[],"statements":[{"expression":{"baseExpression":{"id":9391,"name":"_quorumParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7811,"src":"34795:13:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_struct$_OperatorSetParam_$12374_storage_$","typeString":"mapping(uint8 => struct IRegistryCoordinator.OperatorSetParam storage ref)"}},"id":9393,"indexExpression":{"id":9392,"name":"quorumNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9385,"src":"34809:12:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"34795:27:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorSetParam_$12374_storage","typeString":"struct IRegistryCoordinator.OperatorSetParam storage ref"}},"functionReturnParameters":9390,"id":9394,"nodeType":"Return","src":"34788:34:29"}]},"baseFunctions":[12388],"documentation":{"id":9383,"nodeType":"StructuredDocumentation","src":"34603:72:29","text":"@notice Returns the operator set params for the given `quorumNumber`"},"functionSelector":"e65797ad","implemented":true,"kind":"function","modifiers":[],"name":"getOperatorSetParams","nameLocation":"34689:20:29","parameters":{"id":9386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9385,"mutability":"mutable","name":"quorumNumber","nameLocation":"34716:12:29","nodeType":"VariableDeclaration","scope":9396,"src":"34710:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":9384,"name":"uint8","nodeType":"ElementaryTypeName","src":"34710:5:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"34709:20:29"},"returnParameters":{"id":9390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9389,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9396,"src":"34753:23:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorSetParam_$12374_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorSetParam"},"typeName":{"id":9388,"nodeType":"UserDefinedTypeName","pathNode":{"id":9387,"name":"OperatorSetParam","nodeType":"IdentifierPath","referencedDeclaration":12374,"src":"34753:16:29"},"referencedDeclaration":12374,"src":"34753:16:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorSetParam_$12374_storage_ptr","typeString":"struct IRegistryCoordinator.OperatorSetParam"}},"visibility":"internal"}],"src":"34752:25:29"},"scope":9739,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":9410,"nodeType":"FunctionDefinition","src":"34904:130:29","nodes":[],"body":{"id":9409,"nodeType":"Block","src":"34987:47:29","nodes":[],"statements":[{"expression":{"baseExpression":{"id":9405,"name":"_operatorInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7824,"src":"35004:13:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_OperatorInfo_$12360_storage_$","typeString":"mapping(address => struct IRegistryCoordinator.OperatorInfo storage ref)"}},"id":9407,"indexExpression":{"id":9406,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9399,"src":"35018:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"35004:23:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorInfo_$12360_storage","typeString":"struct IRegistryCoordinator.OperatorInfo storage ref"}},"functionReturnParameters":9404,"id":9408,"nodeType":"Return","src":"34997:30:29"}]},"baseFunctions":[12432],"documentation":{"id":9397,"nodeType":"StructuredDocumentation","src":"34835:64:29","text":"@notice Returns the operator struct for the given `operator`"},"functionSelector":"5865c60c","implemented":true,"kind":"function","modifiers":[],"name":"getOperator","nameLocation":"34913:11:29","parameters":{"id":9400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9399,"mutability":"mutable","name":"operator","nameLocation":"34933:8:29","nodeType":"VariableDeclaration","scope":9410,"src":"34925:16:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9398,"name":"address","nodeType":"ElementaryTypeName","src":"34925:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"34924:18:29"},"returnParameters":{"id":9404,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9403,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9410,"src":"34966:19:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorInfo_$12360_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorInfo"},"typeName":{"id":9402,"nodeType":"UserDefinedTypeName","pathNode":{"id":9401,"name":"OperatorInfo","nodeType":"IdentifierPath","referencedDeclaration":12360,"src":"34966:12:29"},"referencedDeclaration":12360,"src":"34966:12:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorInfo_$12360_storage_ptr","typeString":"struct IRegistryCoordinator.OperatorInfo"}},"visibility":"internal"}],"src":"34965:21:29"},"scope":9739,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":9424,"nodeType":"FunctionDefinition","src":"35104:131:29","nodes":[],"body":{"id":9423,"nodeType":"Block","src":"35177:58:29","nodes":[],"statements":[{"expression":{"expression":{"baseExpression":{"id":9418,"name":"_operatorInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7824,"src":"35194:13:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_OperatorInfo_$12360_storage_$","typeString":"mapping(address => struct IRegistryCoordinator.OperatorInfo storage ref)"}},"id":9420,"indexExpression":{"id":9419,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9413,"src":"35208:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"35194:23:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorInfo_$12360_storage","typeString":"struct IRegistryCoordinator.OperatorInfo storage ref"}},"id":9421,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"operatorId","nodeType":"MemberAccess","referencedDeclaration":12356,"src":"35194:34:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":9417,"id":9422,"nodeType":"Return","src":"35187:41:29"}]},"baseFunctions":[12440],"documentation":{"id":9411,"nodeType":"StructuredDocumentation","src":"35040:59:29","text":"@notice Returns the operatorId for the given `operator`"},"functionSelector":"13542a4e","implemented":true,"kind":"function","modifiers":[],"name":"getOperatorId","nameLocation":"35113:13:29","parameters":{"id":9414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9413,"mutability":"mutable","name":"operator","nameLocation":"35135:8:29","nodeType":"VariableDeclaration","scope":9424,"src":"35127:16:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9412,"name":"address","nodeType":"ElementaryTypeName","src":"35127:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"35126:18:29"},"returnParameters":{"id":9417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9416,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9424,"src":"35168:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9415,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35168:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"35167:9:29"},"scope":9739,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":9438,"nodeType":"FunctionDefinition","src":"35313:155:29","nodes":[],"body":{"id":9437,"nodeType":"Block","src":"35392:76:29","nodes":[],"statements":[{"expression":{"arguments":[{"id":9434,"name":"operatorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9427,"src":"35450:10:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":9432,"name":"blsApkRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7794,"src":"35409:14:29","typeDescriptions":{"typeIdentifier":"t_contract$_IBLSApkRegistry_$12091","typeString":"contract IBLSApkRegistry"}},"id":9433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getOperatorFromPubkeyHash","nodeType":"MemberAccess","referencedDeclaration":12070,"src":"35409:40:29","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":9435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"35409:52:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":9431,"id":9436,"nodeType":"Return","src":"35402:59:29"}]},"baseFunctions":[12448],"documentation":{"id":9425,"nodeType":"StructuredDocumentation","src":"35241:67:29","text":"@notice Returns the operator address for the given `operatorId`"},"functionSelector":"296bb064","implemented":true,"kind":"function","modifiers":[],"name":"getOperatorFromId","nameLocation":"35322:17:29","parameters":{"id":9428,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9427,"mutability":"mutable","name":"operatorId","nameLocation":"35348:10:29","nodeType":"VariableDeclaration","scope":9438,"src":"35340:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9426,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35340:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"35339:20:29"},"returnParameters":{"id":9431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9430,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9438,"src":"35383:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9429,"name":"address","nodeType":"ElementaryTypeName","src":"35383:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"35382:9:29"},"scope":9739,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":9453,"nodeType":"FunctionDefinition","src":"35534:159:29","nodes":[],"body":{"id":9452,"nodeType":"Block","src":"35639:54:29","nodes":[],"statements":[{"expression":{"expression":{"baseExpression":{"id":9447,"name":"_operatorInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7824,"src":"35656:13:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_OperatorInfo_$12360_storage_$","typeString":"mapping(address => struct IRegistryCoordinator.OperatorInfo storage ref)"}},"id":9449,"indexExpression":{"id":9448,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9441,"src":"35670:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"35656:23:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorInfo_$12360_storage","typeString":"struct IRegistryCoordinator.OperatorInfo storage ref"}},"id":9450,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"status","nodeType":"MemberAccess","referencedDeclaration":12359,"src":"35656:30:29","typeDescriptions":{"typeIdentifier":"t_enum$_OperatorStatus_$12354","typeString":"enum IRegistryCoordinator.OperatorStatus"}},"functionReturnParameters":9446,"id":9451,"nodeType":"Return","src":"35649:37:29"}]},"baseFunctions":[12457],"documentation":{"id":9439,"nodeType":"StructuredDocumentation","src":"35474:55:29","text":"@notice Returns the status for the given `operator`"},"functionSelector":"fd39105a","implemented":true,"kind":"function","modifiers":[],"name":"getOperatorStatus","nameLocation":"35543:17:29","parameters":{"id":9442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9441,"mutability":"mutable","name":"operator","nameLocation":"35569:8:29","nodeType":"VariableDeclaration","scope":9453,"src":"35561:16:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9440,"name":"address","nodeType":"ElementaryTypeName","src":"35561:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"35560:18:29"},"returnParameters":{"id":9446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9445,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9453,"src":"35602:35:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_OperatorStatus_$12354","typeString":"enum IRegistryCoordinator.OperatorStatus"},"typeName":{"id":9444,"nodeType":"UserDefinedTypeName","pathNode":{"id":9443,"name":"IRegistryCoordinator.OperatorStatus","nodeType":"IdentifierPath","referencedDeclaration":12354,"src":"35602:35:29"},"referencedDeclaration":12354,"src":"35602:35:29","typeDescriptions":{"typeIdentifier":"t_enum$_OperatorStatus_$12354","typeString":"enum IRegistryCoordinator.OperatorStatus"}},"visibility":"internal"}],"src":"35601:37:29"},"scope":9739,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":9570,"nodeType":"FunctionDefinition","src":"35814:1107:29","nodes":[],"body":{"id":9569,"nodeType":"Block","src":"35972:949:29","nodes":[],"statements":[{"assignments":[9469],"declarations":[{"constant":false,"id":9469,"mutability":"mutable","name":"indices","nameLocation":"35998:7:29","nodeType":"VariableDeclaration","scope":9569,"src":"35982:23:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_memory_ptr","typeString":"uint32[]"},"typeName":{"baseType":{"id":9467,"name":"uint32","nodeType":"ElementaryTypeName","src":"35982:6:29","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":9468,"nodeType":"ArrayTypeName","src":"35982:8:29","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_storage_ptr","typeString":"uint32[]"}},"visibility":"internal"}],"id":9476,"initialValue":{"arguments":[{"expression":{"id":9473,"name":"operatorIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9459,"src":"36021:11:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":9474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"36021:18:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9472,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"36008:12:29","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint32[] memory)"},"typeName":{"baseType":{"id":9470,"name":"uint32","nodeType":"ElementaryTypeName","src":"36012:6:29","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":9471,"nodeType":"ArrayTypeName","src":"36012:8:29","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_storage_ptr","typeString":"uint32[]"}}},"id":9475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"36008:32:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_memory_ptr","typeString":"uint32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"35982:58:29"},{"body":{"id":9565,"nodeType":"Block","src":"36099:792:29","statements":[{"assignments":[9489],"declarations":[{"constant":false,"id":9489,"mutability":"mutable","name":"length","nameLocation":"36121:6:29","nodeType":"VariableDeclaration","scope":9565,"src":"36113:14:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9488,"name":"uint256","nodeType":"ElementaryTypeName","src":"36113:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9496,"initialValue":{"expression":{"baseExpression":{"id":9490,"name":"_operatorBitmapHistory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7818,"src":"36130:22:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_array$_t_struct$_QuorumBitmapUpdate_$12367_storage_$dyn_storage_$","typeString":"mapping(bytes32 => struct IRegistryCoordinator.QuorumBitmapUpdate storage ref[] storage ref)"}},"id":9494,"indexExpression":{"baseExpression":{"id":9491,"name":"operatorIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9459,"src":"36153:11:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":9493,"indexExpression":{"id":9492,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9478,"src":"36165:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"36153:14:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"36130:38:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QuorumBitmapUpdate_$12367_storage_$dyn_storage","typeString":"struct IRegistryCoordinator.QuorumBitmapUpdate storage ref[] storage ref"}},"id":9495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"36130:45:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"36113:62:29"},{"body":{"id":9563,"nodeType":"Block","src":"36226:655:29","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"id":9520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"baseExpression":{"id":9507,"name":"_operatorBitmapHistory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7818,"src":"36248:22:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_array$_t_struct$_QuorumBitmapUpdate_$12367_storage_$dyn_storage_$","typeString":"mapping(bytes32 => struct IRegistryCoordinator.QuorumBitmapUpdate storage ref[] storage ref)"}},"id":9511,"indexExpression":{"baseExpression":{"id":9508,"name":"operatorIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9459,"src":"36271:11:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":9510,"indexExpression":{"id":9509,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9478,"src":"36283:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"36271:14:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"36248:38:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QuorumBitmapUpdate_$12367_storage_$dyn_storage","typeString":"struct IRegistryCoordinator.QuorumBitmapUpdate storage ref[] storage ref"}},"id":9517,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9512,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9489,"src":"36287:6:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":9513,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9498,"src":"36296:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36287:10:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":9515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36300:1:29","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"36287:14:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"36248:54:29","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumBitmapUpdate_$12367_storage","typeString":"struct IRegistryCoordinator.QuorumBitmapUpdate storage ref"}},"id":9518,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"updateBlockNumber","nodeType":"MemberAccess","referencedDeclaration":12362,"src":"36248:72:29","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":9519,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9456,"src":"36324:11:29","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"36248:87:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9562,"nodeType":"IfStatement","src":"36244:623:29","trueBody":{"id":9561,"nodeType":"Block","src":"36337:530:29","statements":[{"assignments":[9522],"declarations":[{"constant":false,"id":9522,"mutability":"mutable","name":"nextUpdateBlockNumber","nameLocation":"36366:21:29","nodeType":"VariableDeclaration","scope":9561,"src":"36359:28:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":9521,"name":"uint32","nodeType":"ElementaryTypeName","src":"36359:6:29","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"id":9535,"initialValue":{"expression":{"baseExpression":{"baseExpression":{"id":9523,"name":"_operatorBitmapHistory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7818,"src":"36415:22:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_array$_t_struct$_QuorumBitmapUpdate_$12367_storage_$dyn_storage_$","typeString":"mapping(bytes32 => struct IRegistryCoordinator.QuorumBitmapUpdate storage ref[] storage ref)"}},"id":9527,"indexExpression":{"baseExpression":{"id":9524,"name":"operatorIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9459,"src":"36438:11:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":9526,"indexExpression":{"id":9525,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9478,"src":"36450:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"36438:14:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"36415:38:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QuorumBitmapUpdate_$12367_storage_$dyn_storage","typeString":"struct IRegistryCoordinator.QuorumBitmapUpdate storage ref[] storage ref"}},"id":9533,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9528,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9489,"src":"36454:6:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":9529,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9498,"src":"36463:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36454:10:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":9531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36467:1:29","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"36454:14:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"36415:54:29","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumBitmapUpdate_$12367_storage","typeString":"struct IRegistryCoordinator.QuorumBitmapUpdate storage ref"}},"id":9534,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"nextUpdateBlockNumber","nodeType":"MemberAccess","referencedDeclaration":12364,"src":"36415:76:29","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"VariableDeclarationStatement","src":"36359:132:29"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"id":9539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9537,"name":"nextUpdateBlockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9522,"src":"36546:21:29","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":9538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36571:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"36546:26:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"id":9542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9540,"name":"nextUpdateBlockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9522,"src":"36576:21:29","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":9541,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9456,"src":"36600:11:29","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"36576:35:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"36546:65:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5265676973747279436f6f7264696e61746f722e67657451756f72756d4269746d6170496e64696365734174426c6f636b4e756d6265723a206f70657261746f72496420686173206e6f2071756f72756d4269746d61707320617420626c6f636b4e756d626572","id":9544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36637:105:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_30fdee9d20be1963565be2ee7cd1c925a51909fe5b150ffce45e8e8dcc7458c0","typeString":"literal_string \"RegistryCoordinator.getQuorumBitmapIndicesAtBlockNumber: operatorId has no quorumBitmaps at blockNumber\""},"value":"RegistryCoordinator.getQuorumBitmapIndicesAtBlockNumber: operatorId has no quorumBitmaps at blockNumber"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_30fdee9d20be1963565be2ee7cd1c925a51909fe5b150ffce45e8e8dcc7458c0","typeString":"literal_string \"RegistryCoordinator.getQuorumBitmapIndicesAtBlockNumber: operatorId has no quorumBitmaps at blockNumber\""}],"id":9536,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"36513:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"36513:251:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9546,"nodeType":"ExpressionStatement","src":"36513:251:29"},{"expression":{"id":9558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":9547,"name":"indices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9469,"src":"36786:7:29","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_memory_ptr","typeString":"uint32[] memory"}},"id":9549,"indexExpression":{"id":9548,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9478,"src":"36794:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"36786:10:29","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9552,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9489,"src":"36806:6:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":9553,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9498,"src":"36815:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36806:10:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":9555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36819:1:29","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"36806:14:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9551,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"36799:6:29","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":9550,"name":"uint32","nodeType":"ElementaryTypeName","src":"36799:6:29","typeDescriptions":{}}},"id":9557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"36799:22:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"36786:35:29","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":9559,"nodeType":"ExpressionStatement","src":"36786:35:29"},{"id":9560,"nodeType":"Break","src":"36843:5:29"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9501,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9498,"src":"36209:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":9502,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9489,"src":"36213:6:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36209:10:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9564,"initializationExpression":{"assignments":[9498],"declarations":[{"constant":false,"id":9498,"mutability":"mutable","name":"j","nameLocation":"36202:1:29","nodeType":"VariableDeclaration","scope":9564,"src":"36194:9:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9497,"name":"uint256","nodeType":"ElementaryTypeName","src":"36194:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9500,"initialValue":{"hexValue":"30","id":9499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36206:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"36194:13:29"},"loopExpression":{"expression":{"id":9505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"36221:3:29","subExpression":{"id":9504,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9498,"src":"36221:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9506,"nodeType":"ExpressionStatement","src":"36221:3:29"},"nodeType":"ForStatement","src":"36189:692:29"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9481,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9478,"src":"36070:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":9482,"name":"operatorIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9459,"src":"36074:11:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":9483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"36074:18:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36070:22:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9566,"initializationExpression":{"assignments":[9478],"declarations":[{"constant":false,"id":9478,"mutability":"mutable","name":"i","nameLocation":"36063:1:29","nodeType":"VariableDeclaration","scope":9566,"src":"36055:9:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9477,"name":"uint256","nodeType":"ElementaryTypeName","src":"36055:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9480,"initialValue":{"hexValue":"30","id":9479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36067:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"36055:13:29"},"loopExpression":{"expression":{"id":9486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"36094:3:29","subExpression":{"id":9485,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9478,"src":"36094:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9487,"nodeType":"ExpressionStatement","src":"36094:3:29"},"nodeType":"ForStatement","src":"36050:841:29"},{"expression":{"id":9567,"name":"indices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9469,"src":"36907:7:29","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_memory_ptr","typeString":"uint32[] memory"}},"functionReturnParameters":9464,"id":9568,"nodeType":"Return","src":"36900:14:29"}]},"baseFunctions":[12469],"documentation":{"id":9454,"nodeType":"StructuredDocumentation","src":"35699:110:29","text":"@notice Returns the indices of the quorumBitmaps for the provided `operatorIds` at the given `blockNumber`"},"functionSelector":"c391425e","implemented":true,"kind":"function","modifiers":[],"name":"getQuorumBitmapIndicesAtBlockNumber","nameLocation":"35823:35:29","parameters":{"id":9460,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9456,"mutability":"mutable","name":"blockNumber","nameLocation":"35875:11:29","nodeType":"VariableDeclaration","scope":9570,"src":"35868:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":9455,"name":"uint32","nodeType":"ElementaryTypeName","src":"35868:6:29","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":9459,"mutability":"mutable","name":"operatorIds","nameLocation":"35914:11:29","nodeType":"VariableDeclaration","scope":9570,"src":"35897:28:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":9457,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35897:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":9458,"nodeType":"ArrayTypeName","src":"35897:9:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"35858:73:29"},"returnParameters":{"id":9464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9463,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9570,"src":"35955:15:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_memory_ptr","typeString":"uint32[]"},"typeName":{"baseType":{"id":9461,"name":"uint32","nodeType":"ElementaryTypeName","src":"35955:6:29","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":9462,"nodeType":"ArrayTypeName","src":"35955:8:29","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_storage_ptr","typeString":"uint32[]"}},"visibility":"internal"}],"src":"35954:17:29"},"scope":9739,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":9616,"nodeType":"FunctionDefinition","src":"37100:1055:29","nodes":[],"body":{"id":9615,"nodeType":"Block","src":"37264:891:29","nodes":[],"statements":[{"assignments":[9584],"declarations":[{"constant":false,"id":9584,"mutability":"mutable","name":"quorumBitmapUpdate","nameLocation":"37300:18:29","nodeType":"VariableDeclaration","scope":9615,"src":"37274:44:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumBitmapUpdate_$12367_memory_ptr","typeString":"struct IRegistryCoordinator.QuorumBitmapUpdate"},"typeName":{"id":9583,"nodeType":"UserDefinedTypeName","pathNode":{"id":9582,"name":"QuorumBitmapUpdate","nodeType":"IdentifierPath","referencedDeclaration":12367,"src":"37274:18:29"},"referencedDeclaration":12367,"src":"37274:18:29","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumBitmapUpdate_$12367_storage_ptr","typeString":"struct IRegistryCoordinator.QuorumBitmapUpdate"}},"visibility":"internal"}],"id":9590,"initialValue":{"baseExpression":{"baseExpression":{"id":9585,"name":"_operatorBitmapHistory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7818,"src":"37321:22:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_array$_t_struct$_QuorumBitmapUpdate_$12367_storage_$dyn_storage_$","typeString":"mapping(bytes32 => struct IRegistryCoordinator.QuorumBitmapUpdate storage ref[] storage ref)"}},"id":9587,"indexExpression":{"id":9586,"name":"operatorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9573,"src":"37344:10:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"37321:34:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QuorumBitmapUpdate_$12367_storage_$dyn_storage","typeString":"struct IRegistryCoordinator.QuorumBitmapUpdate storage ref[] storage ref"}},"id":9589,"indexExpression":{"id":9588,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9577,"src":"37356:5:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"37321:41:29","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumBitmapUpdate_$12367_storage","typeString":"struct IRegistryCoordinator.QuorumBitmapUpdate storage ref"}},"nodeType":"VariableDeclarationStatement","src":"37274:88:29"},{"documentation":" Validate that the update is valid for the given blockNumber:\n - blockNumber should be >= the update block number\n - the next update block number should be either 0 or strictly greater than blockNumber","expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"id":9595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9592,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9575,"src":"37658:11:29","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":9593,"name":"quorumBitmapUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9584,"src":"37673:18:29","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumBitmapUpdate_$12367_memory_ptr","typeString":"struct IRegistryCoordinator.QuorumBitmapUpdate memory"}},"id":9594,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"updateBlockNumber","nodeType":"MemberAccess","referencedDeclaration":12362,"src":"37673:36:29","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"37658:51:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5265676973747279436f6f7264696e61746f722e67657451756f72756d4269746d61704174426c6f636b4e756d6265724279496e6465783a2071756f72756d4269746d61705570646174652069732066726f6d20616674657220626c6f636b4e756d626572","id":9596,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37724:103:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_4cff8546f81666c5d2a8d348d5a5f278413f9715e30c5afb954dbb5e8569b5f6","typeString":"literal_string \"RegistryCoordinator.getQuorumBitmapAtBlockNumberByIndex: quorumBitmapUpdate is from after blockNumber\""},"value":"RegistryCoordinator.getQuorumBitmapAtBlockNumberByIndex: quorumBitmapUpdate is from after blockNumber"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4cff8546f81666c5d2a8d348d5a5f278413f9715e30c5afb954dbb5e8569b5f6","typeString":"literal_string \"RegistryCoordinator.getQuorumBitmapAtBlockNumberByIndex: quorumBitmapUpdate is from after blockNumber\""}],"id":9591,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"37637:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"37637:200:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9598,"nodeType":"ExpressionStatement","src":"37637:200:29"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"id":9603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":9600,"name":"quorumBitmapUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9584,"src":"37868:18:29","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumBitmapUpdate_$12367_memory_ptr","typeString":"struct IRegistryCoordinator.QuorumBitmapUpdate memory"}},"id":9601,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"nextUpdateBlockNumber","nodeType":"MemberAccess","referencedDeclaration":12364,"src":"37868:40:29","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":9602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37912:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"37868:45:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"id":9607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9604,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9575,"src":"37917:11:29","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":9605,"name":"quorumBitmapUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9584,"src":"37931:18:29","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumBitmapUpdate_$12367_memory_ptr","typeString":"struct IRegistryCoordinator.QuorumBitmapUpdate memory"}},"id":9606,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"nextUpdateBlockNumber","nodeType":"MemberAccess","referencedDeclaration":12364,"src":"37931:40:29","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"37917:54:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"37868:103:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5265676973747279436f6f7264696e61746f722e67657451756f72756d4269746d61704174426c6f636b4e756d6265724279496e6465783a2071756f72756d4269746d61705570646174652069732066726f6d206265666f726520626c6f636b4e756d626572","id":9609,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37985:104:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_272b94c044f7319163dd923e5ecbe2094e3ceb4498b0f77ad4738ebce1dd7d5e","typeString":"literal_string \"RegistryCoordinator.getQuorumBitmapAtBlockNumberByIndex: quorumBitmapUpdate is from before blockNumber\""},"value":"RegistryCoordinator.getQuorumBitmapAtBlockNumberByIndex: quorumBitmapUpdate is from before blockNumber"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_272b94c044f7319163dd923e5ecbe2094e3ceb4498b0f77ad4738ebce1dd7d5e","typeString":"literal_string \"RegistryCoordinator.getQuorumBitmapAtBlockNumberByIndex: quorumBitmapUpdate is from before blockNumber\""}],"id":9599,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"37847:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"37847:252:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9611,"nodeType":"ExpressionStatement","src":"37847:252:29"},{"expression":{"expression":{"id":9612,"name":"quorumBitmapUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9584,"src":"38117:18:29","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumBitmapUpdate_$12367_memory_ptr","typeString":"struct IRegistryCoordinator.QuorumBitmapUpdate memory"}},"id":9613,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"quorumBitmap","nodeType":"MemberAccess","referencedDeclaration":12366,"src":"38117:31:29","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"functionReturnParameters":9581,"id":9614,"nodeType":"Return","src":"38110:38:29"}]},"baseFunctions":[12481],"documentation":{"id":9571,"nodeType":"StructuredDocumentation","src":"36927:167:29","text":" @notice Returns the quorum bitmap for the given `operatorId` at the given `blockNumber` via the `index`\n @dev reverts if `index` is incorrect "},"functionSelector":"04ec6351","implemented":true,"kind":"function","modifiers":[],"name":"getQuorumBitmapAtBlockNumberByIndex","nameLocation":"37109:35:29","parameters":{"id":9578,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9573,"mutability":"mutable","name":"operatorId","nameLocation":"37162:10:29","nodeType":"VariableDeclaration","scope":9616,"src":"37154:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9572,"name":"bytes32","nodeType":"ElementaryTypeName","src":"37154:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9575,"mutability":"mutable","name":"blockNumber","nameLocation":"37190:11:29","nodeType":"VariableDeclaration","scope":9616,"src":"37183:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":9574,"name":"uint32","nodeType":"ElementaryTypeName","src":"37183:6:29","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":9577,"mutability":"mutable","name":"index","nameLocation":"37220:5:29","nodeType":"VariableDeclaration","scope":9616,"src":"37212:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9576,"name":"uint256","nodeType":"ElementaryTypeName","src":"37212:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37144:87:29"},"returnParameters":{"id":9581,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9580,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9616,"src":"37255:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"},"typeName":{"id":9579,"name":"uint192","nodeType":"ElementaryTypeName","src":"37255:7:29","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"visibility":"internal"}],"src":"37254:9:29"},"scope":9739,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":9634,"nodeType":"FunctionDefinition","src":"38256:211:29","nodes":[],"body":{"id":9633,"nodeType":"Block","src":"38402:65:29","nodes":[],"statements":[{"expression":{"baseExpression":{"baseExpression":{"id":9627,"name":"_operatorBitmapHistory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7818,"src":"38419:22:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_array$_t_struct$_QuorumBitmapUpdate_$12367_storage_$dyn_storage_$","typeString":"mapping(bytes32 => struct IRegistryCoordinator.QuorumBitmapUpdate storage ref[] storage ref)"}},"id":9629,"indexExpression":{"id":9628,"name":"operatorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9619,"src":"38442:10:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"38419:34:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QuorumBitmapUpdate_$12367_storage_$dyn_storage","typeString":"struct IRegistryCoordinator.QuorumBitmapUpdate storage ref[] storage ref"}},"id":9631,"indexExpression":{"id":9630,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9621,"src":"38454:5:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"38419:41:29","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumBitmapUpdate_$12367_storage","typeString":"struct IRegistryCoordinator.QuorumBitmapUpdate storage ref"}},"functionReturnParameters":9626,"id":9632,"nodeType":"Return","src":"38412:48:29"}]},"baseFunctions":[12492],"documentation":{"id":9617,"nodeType":"StructuredDocumentation","src":"38161:90:29","text":"@notice Returns the `index`th entry in the operator with `operatorId`'s bitmap history"},"functionSelector":"1eb812da","implemented":true,"kind":"function","modifiers":[],"name":"getQuorumBitmapUpdateByIndex","nameLocation":"38265:28:29","parameters":{"id":9622,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9619,"mutability":"mutable","name":"operatorId","nameLocation":"38311:10:29","nodeType":"VariableDeclaration","scope":9634,"src":"38303:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9618,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38303:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9621,"mutability":"mutable","name":"index","nameLocation":"38340:5:29","nodeType":"VariableDeclaration","scope":9634,"src":"38332:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9620,"name":"uint256","nodeType":"ElementaryTypeName","src":"38332:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"38293:58:29"},"returnParameters":{"id":9626,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9625,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9634,"src":"38375:25:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumBitmapUpdate_$12367_memory_ptr","typeString":"struct IRegistryCoordinator.QuorumBitmapUpdate"},"typeName":{"id":9624,"nodeType":"UserDefinedTypeName","pathNode":{"id":9623,"name":"QuorumBitmapUpdate","nodeType":"IdentifierPath","referencedDeclaration":12367,"src":"38375:18:29"},"referencedDeclaration":12367,"src":"38375:18:29","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumBitmapUpdate_$12367_storage_ptr","typeString":"struct IRegistryCoordinator.QuorumBitmapUpdate"}},"visibility":"internal"}],"src":"38374:27:29"},"scope":9739,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":9647,"nodeType":"FunctionDefinition","src":"38604:142:29","nodes":[],"body":{"id":9646,"nodeType":"Block","src":"38688:58:29","nodes":[],"statements":[{"expression":{"arguments":[{"id":9643,"name":"operatorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9637,"src":"38728:10:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9642,"name":"_currentOperatorBitmap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9332,"src":"38705:22:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_uint192_$","typeString":"function (bytes32) view returns (uint192)"}},"id":9644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"38705:34:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"functionReturnParameters":9641,"id":9645,"nodeType":"Return","src":"38698:41:29"}]},"baseFunctions":[12500],"documentation":{"id":9635,"nodeType":"StructuredDocumentation","src":"38473:126:29","text":"@notice Returns the current quorum bitmap for the given `operatorId` or 0 if the operator is not registered for any quorum"},"functionSelector":"871ef049","implemented":true,"kind":"function","modifiers":[],"name":"getCurrentQuorumBitmap","nameLocation":"38613:22:29","parameters":{"id":9638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9637,"mutability":"mutable","name":"operatorId","nameLocation":"38644:10:29","nodeType":"VariableDeclaration","scope":9647,"src":"38636:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9636,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38636:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"38635:20:29"},"returnParameters":{"id":9641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9640,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9647,"src":"38679:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"},"typeName":{"id":9639,"name":"uint192","nodeType":"ElementaryTypeName","src":"38679:7:29","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"visibility":"internal"}],"src":"38678:9:29"},"scope":9739,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":9661,"nodeType":"FunctionDefinition","src":"38843:155:29","nodes":[],"body":{"id":9660,"nodeType":"Block","src":"38933:65:29","nodes":[],"statements":[{"expression":{"expression":{"baseExpression":{"id":9655,"name":"_operatorBitmapHistory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7818,"src":"38950:22:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_array$_t_struct$_QuorumBitmapUpdate_$12367_storage_$dyn_storage_$","typeString":"mapping(bytes32 => struct IRegistryCoordinator.QuorumBitmapUpdate storage ref[] storage ref)"}},"id":9657,"indexExpression":{"id":9656,"name":"operatorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9650,"src":"38973:10:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"38950:34:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QuorumBitmapUpdate_$12367_storage_$dyn_storage","typeString":"struct IRegistryCoordinator.QuorumBitmapUpdate storage ref[] storage ref"}},"id":9658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"38950:41:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9654,"id":9659,"nodeType":"Return","src":"38943:48:29"}]},"baseFunctions":[12508],"documentation":{"id":9648,"nodeType":"StructuredDocumentation","src":"38752:86:29","text":"@notice Returns the length of the quorum bitmap history for the given `operatorId`"},"functionSelector":"03fd3492","implemented":true,"kind":"function","modifiers":[],"name":"getQuorumBitmapHistoryLength","nameLocation":"38852:28:29","parameters":{"id":9651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9650,"mutability":"mutable","name":"operatorId","nameLocation":"38889:10:29","nodeType":"VariableDeclaration","scope":9661,"src":"38881:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9649,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38881:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"38880:20:29"},"returnParameters":{"id":9654,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9653,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9661,"src":"38924:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9652,"name":"uint256","nodeType":"ElementaryTypeName","src":"38924:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"38923:9:29"},"scope":9739,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":9671,"nodeType":"FunctionDefinition","src":"39053:98:29","nodes":[],"body":{"id":9670,"nodeType":"Block","src":"39110:41:29","nodes":[],"statements":[{"expression":{"expression":{"id":9667,"name":"registries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7838,"src":"39127:10:29","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":9668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"39127:17:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9666,"id":9669,"nodeType":"Return","src":"39120:24:29"}]},"baseFunctions":[12522],"documentation":{"id":9662,"nodeType":"StructuredDocumentation","src":"39004:44:29","text":"@notice Returns the number of registries"},"functionSelector":"d72d8dd6","implemented":true,"kind":"function","modifiers":[],"name":"numRegistries","nameLocation":"39062:13:29","parameters":{"id":9663,"nodeType":"ParameterList","parameters":[],"src":"39075:2:29"},"returnParameters":{"id":9666,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9665,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9671,"src":"39101:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9664,"name":"uint256","nodeType":"ElementaryTypeName","src":"39101:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39100:9:29"},"scope":9739,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":9701,"nodeType":"FunctionDefinition","src":"39643:417:29","nodes":[],"body":{"id":9700,"nodeType":"Block","src":"39869:191:29","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":9691,"name":"OPERATOR_CHURN_APPROVAL_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7752,"src":"39961:32:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9692,"name":"registeringOperatorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9674,"src":"39995:21:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9693,"name":"operatorKickParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9678,"src":"40018:18:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OperatorKickParam_$12379_memory_ptr_$dyn_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorKickParam memory[] memory"}},{"id":9694,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9680,"src":"40038:4:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9695,"name":"expiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9682,"src":"40044:6:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_array$_t_struct$_OperatorKickParam_$12379_memory_ptr_$dyn_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorKickParam memory[] memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9689,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"39950:3:29","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9690,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"39950:10:29","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":9696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"39950:101:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9688,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"39940:9:29","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":9697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"39940:112:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9687,"name":"_hashTypedDataV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49899,"src":"39923:16:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":9698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"39923:130:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":9686,"id":9699,"nodeType":"Return","src":"39916:137:29"}]},"documentation":{"id":9672,"nodeType":"StructuredDocumentation","src":"39157:481:29","text":" @notice Public function for the the churnApprover signature hash calculation when operators are being kicked from quorums\n @param registeringOperatorId The is of the registering operator \n @param operatorKickParams The parameters needed to kick the operator from the quorums that have reached their caps\n @param salt The salt to use for the churnApprover's signature\n @param expiry The desired expiry time of the churnApprover's signature"},"functionSelector":"f8581191","implemented":true,"kind":"function","modifiers":[],"name":"calculateOperatorChurnApprovalDigestHash","nameLocation":"39652:40:29","parameters":{"id":9683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9674,"mutability":"mutable","name":"registeringOperatorId","nameLocation":"39710:21:29","nodeType":"VariableDeclaration","scope":9701,"src":"39702:29:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9673,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39702:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9678,"mutability":"mutable","name":"operatorKickParams","nameLocation":"39768:18:29","nodeType":"VariableDeclaration","scope":9701,"src":"39741:45:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OperatorKickParam_$12379_memory_ptr_$dyn_memory_ptr","typeString":"struct IRegistryCoordinator.OperatorKickParam[]"},"typeName":{"baseType":{"id":9676,"nodeType":"UserDefinedTypeName","pathNode":{"id":9675,"name":"OperatorKickParam","nodeType":"IdentifierPath","referencedDeclaration":12379,"src":"39741:17:29"},"referencedDeclaration":12379,"src":"39741:17:29","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorKickParam_$12379_storage_ptr","typeString":"struct IRegistryCoordinator.OperatorKickParam"}},"id":9677,"nodeType":"ArrayTypeName","src":"39741:19:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OperatorKickParam_$12379_storage_$dyn_storage_ptr","typeString":"struct IRegistryCoordinator.OperatorKickParam[]"}},"visibility":"internal"},{"constant":false,"id":9680,"mutability":"mutable","name":"salt","nameLocation":"39804:4:29","nodeType":"VariableDeclaration","scope":9701,"src":"39796:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9679,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39796:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9682,"mutability":"mutable","name":"expiry","nameLocation":"39826:6:29","nodeType":"VariableDeclaration","scope":9701,"src":"39818:14:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9681,"name":"uint256","nodeType":"ElementaryTypeName","src":"39818:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39692:146:29"},"returnParameters":{"id":9686,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9685,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9701,"src":"39860:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9684,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39860:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"39859:9:29"},"scope":9739,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":9724,"nodeType":"FunctionDefinition","src":"40270:271:29","nodes":[],"body":{"id":9723,"nodeType":"Block","src":"40370:171:29","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":9716,"name":"PUBKEY_REGISTRATION_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7758,"src":"40470:28:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9717,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9704,"src":"40500:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9714,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"40459:3:29","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9715,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"40459:10:29","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":9718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"40459:50:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9713,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"40449:9:29","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":9719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"40449:61:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9712,"name":"_hashTypedDataV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49899,"src":"40415:16:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":9720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"40415:109:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":9710,"name":"BN254","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13824,"src":"40387:5:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BN254_$13824_$","typeString":"type(library BN254)"}},"id":9711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"hashToG1","nodeType":"MemberAccess","referencedDeclaration":13709,"src":"40387:14:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_struct$_G1Point_$12956_memory_ptr_$","typeString":"function (bytes32) view returns (struct BN254.G1Point memory)"}},"id":9721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"40387:147:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$12956_memory_ptr","typeString":"struct BN254.G1Point memory"}},"functionReturnParameters":9709,"id":9722,"nodeType":"Return","src":"40380:154:29"}]},"baseFunctions":[12531],"documentation":{"id":9702,"nodeType":"StructuredDocumentation","src":"40066:199:29","text":" @notice Returns the message hash that an operator must sign to register their BLS public key.\n @param operator is the address of the operator registering their BLS public key"},"functionSelector":"3c2a7f4c","implemented":true,"kind":"function","modifiers":[],"name":"pubkeyRegistrationMessageHash","nameLocation":"40279:29:29","parameters":{"id":9705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9704,"mutability":"mutable","name":"operator","nameLocation":"40317:8:29","nodeType":"VariableDeclaration","scope":9724,"src":"40309:16:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9703,"name":"address","nodeType":"ElementaryTypeName","src":"40309:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"40308:18:29"},"returnParameters":{"id":9709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9708,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9724,"src":"40348:20:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$12956_memory_ptr","typeString":"struct BN254.G1Point"},"typeName":{"id":9707,"nodeType":"UserDefinedTypeName","pathNode":{"id":9706,"name":"BN254.G1Point","nodeType":"IdentifierPath","referencedDeclaration":12956,"src":"40348:13:29"},"referencedDeclaration":12956,"src":"40348:13:29","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$12956_storage_ptr","typeString":"struct BN254.G1Point"}},"visibility":"internal"}],"src":"40347:22:29"},"scope":9739,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":9738,"nodeType":"FunctionDefinition","src":"40633:184:29","nodes":[],"body":{"id":9737,"nodeType":"Block","src":"40767:50:29","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":9733,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47008,"src":"40784:18:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_OwnableUpgradeable_$47008_$","typeString":"type(contract OwnableUpgradeable)"}},"id":9734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":46931,"src":"40784:24:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":9735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"40784:26:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":9732,"id":9736,"nodeType":"Return","src":"40777:33:29"}]},"baseFunctions":[12545,46931],"documentation":{"id":9725,"nodeType":"StructuredDocumentation","src":"40547:81:29","text":"@dev need to override function here since its defined in both these contracts"},"functionSelector":"8da5cb5b","implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"40642:5:29","overrides":{"id":9729,"nodeType":"OverrideSpecifier","overrides":[{"id":9727,"name":"OwnableUpgradeable","nodeType":"IdentifierPath","referencedDeclaration":47008,"src":"40695:18:29"},{"id":9728,"name":"IRegistryCoordinator","nodeType":"IdentifierPath","referencedDeclaration":12546,"src":"40715:20:29"}],"src":"40686:50:29"},"parameters":{"id":9726,"nodeType":"ParameterList","parameters":[],"src":"40647:2:29"},"returnParameters":{"id":9732,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9731,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9738,"src":"40754:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9730,"name":"address","nodeType":"ElementaryTypeName","src":"40754:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"40753:9:29"},"scope":9739,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":7727,"name":"EIP712","nodeType":"IdentifierPath","referencedDeclaration":49900,"src":"1662:6:29"},"id":7728,"nodeType":"InheritanceSpecifier","src":"1662:6:29"},{"baseName":{"id":7729,"name":"Initializable","nodeType":"IdentifierPath","referencedDeclaration":47159,"src":"1675:13:29"},"id":7730,"nodeType":"InheritanceSpecifier","src":"1675:13:29"},{"baseName":{"id":7731,"name":"Pausable","nodeType":"IdentifierPath","referencedDeclaration":4174,"src":"1695:8:29"},"id":7732,"nodeType":"InheritanceSpecifier","src":"1695:8:29"},{"baseName":{"id":7733,"name":"OwnableUpgradeable","nodeType":"IdentifierPath","referencedDeclaration":47008,"src":"1709:18:29"},"id":7734,"nodeType":"InheritanceSpecifier","src":"1709:18:29"},{"baseName":{"id":7735,"name":"IRegistryCoordinator","nodeType":"IdentifierPath","referencedDeclaration":12546,"src":"1733:20:29"},"id":7736,"nodeType":"InheritanceSpecifier","src":"1733:20:29"},{"baseName":{"id":7737,"name":"ISocketUpdater","nodeType":"IdentifierPath","referencedDeclaration":12607,"src":"1760:14:29"},"id":7738,"nodeType":"InheritanceSpecifier","src":"1760:14:29"},{"baseName":{"id":7739,"name":"ISignatureUtils","nodeType":"IdentifierPath","referencedDeclaration":1559,"src":"1781:15:29"},"id":7740,"nodeType":"InheritanceSpecifier","src":"1781:15:29"}],"canonicalName":"RegistryCoordinator","contractDependencies":[],"contractKind":"contract","documentation":{"id":7726,"nodeType":"StructuredDocumentation","src":"1240:384:29","text":" @title A `RegistryCoordinator` that has three registries:\n 1) a `StakeRegistry` that keeps track of operators' stakes\n 2) a `BLSApkRegistry` that keeps track of operators' BLS public keys and aggregate BLS public keys for each quorum\n 3) an `IndexRegistry` that keeps track of an ordered list of operators for each quorum\n \n @author Layr Labs, Inc."},"fullyImplemented":true,"linearizedBaseContracts":[9739,1559,12607,12546,47008,47503,4174,47159,1513,49900],"name":"RegistryCoordinator","nameLocation":"1634:19:29","scope":9740,"usedErrors":[]}],"license":"BUSL-1.1"},"id":29} \ No newline at end of file +[ + { + "type": "constructor", + "inputs": [ + { + "name": "_serviceManager", + "type": "address", + "internalType": "contract IServiceManager" + }, + { + "name": "_stakeRegistry", + "type": "address", + "internalType": "contract IStakeRegistry" + }, + { + "name": "_blsApkRegistry", + "type": "address", + "internalType": "contract IBLSApkRegistry" + }, + { + "name": "_indexRegistry", + "type": "address", + "internalType": "contract IIndexRegistry" + } + ], + "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": "contract IBLSApkRegistry" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "calculateOperatorChurnApprovalDigestHash", + "inputs": [ + { + "name": "registeringOperatorId", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "operatorKickParams", + "type": "tuple[]", + "internalType": "struct IRegistryCoordinator.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": "struct IRegistryCoordinator.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": "struct IStakeRegistry.StrategyParams[]", + "components": [ + { + "name": "strategy", + "type": "address", + "internalType": "contract IStrategy" + }, + { + "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": "struct IRegistryCoordinator.OperatorInfo", + "components": [ + { + "name": "operatorId", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "status", + "type": "uint8", + "internalType": "enum IRegistryCoordinator.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": "struct IRegistryCoordinator.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": "enum IRegistryCoordinator.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": "struct IRegistryCoordinator.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": "contract IIndexRegistry" + } + ], + "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": "contract IPauserRegistry" + }, + { + "name": "_initialPausedStatus", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_operatorSetParams", + "type": "tuple[]", + "internalType": "struct IRegistryCoordinator.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": "struct IStakeRegistry.StrategyParams[][]", + "components": [ + { + "name": "strategy", + "type": "address", + "internalType": "contract IStrategy" + }, + { + "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": "contract IPauserRegistry" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "pubkeyRegistrationMessageHash", + "inputs": [ + { + "name": "operator", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "tuple", + "internalType": "struct BN254.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": "struct IBLSApkRegistry.PubkeyRegistrationParams", + "components": [ + { + "name": "pubkeyRegistrationSignature", + "type": "tuple", + "internalType": "struct BN254.G1Point", + "components": [ + { + "name": "X", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "Y", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "name": "pubkeyG1", + "type": "tuple", + "internalType": "struct BN254.G1Point", + "components": [ + { + "name": "X", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "Y", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "name": "pubkeyG2", + "type": "tuple", + "internalType": "struct BN254.G2Point", + "components": [ + { + "name": "X", + "type": "uint256[2]", + "internalType": "uint256[2]" + }, + { + "name": "Y", + "type": "uint256[2]", + "internalType": "uint256[2]" + } + ] + } + ] + }, + { + "name": "operatorSignature", + "type": "tuple", + "internalType": "struct ISignatureUtils.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": "struct IBLSApkRegistry.PubkeyRegistrationParams", + "components": [ + { + "name": "pubkeyRegistrationSignature", + "type": "tuple", + "internalType": "struct BN254.G1Point", + "components": [ + { + "name": "X", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "Y", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "name": "pubkeyG1", + "type": "tuple", + "internalType": "struct BN254.G1Point", + "components": [ + { + "name": "X", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "Y", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "name": "pubkeyG2", + "type": "tuple", + "internalType": "struct BN254.G2Point", + "components": [ + { + "name": "X", + "type": "uint256[2]", + "internalType": "uint256[2]" + }, + { + "name": "Y", + "type": "uint256[2]", + "internalType": "uint256[2]" + } + ] + } + ] + }, + { + "name": "operatorKickParams", + "type": "tuple[]", + "internalType": "struct IRegistryCoordinator.OperatorKickParam[]", + "components": [ + { + "name": "quorumNumber", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "operator", + "type": "address", + "internalType": "address" + } + ] + }, + { + "name": "churnApproverSignature", + "type": "tuple", + "internalType": "struct ISignatureUtils.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": "struct ISignatureUtils.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": "contract IServiceManager" + } + ], + "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": "struct IRegistryCoordinator.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": "contract IPauserRegistry" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "stakeRegistry", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IStakeRegistry" + } + ], + "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": "struct IRegistryCoordinator.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": "contract IPauserRegistry" + }, + { + "name": "newPauserRegistry", + "type": "address", + "indexed": false, + "internalType": "contract IPauserRegistry" + } + ], + "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 + } +] \ No newline at end of file