{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"DOMAIN_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NATIVE_NODE_REGISTRATION_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"addReward","inputs":[{"name":"nodes","type":"address[]","internalType":"address[]"},{"name":"ethAmount","type":"uint256","internalType":"uint256"},{"name":"arpaAmount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"assetAccountSaltIsSpent","inputs":[{"name":"assetAccountAddress","type":"address","internalType":"address"},{"name":"salt","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"calculateNativeNodeRegistrationDigestHash","inputs":[{"name":"assetAccountAddress","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":"changeDkgPublicKey","inputs":[{"name":"dkgPublicKey","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"dismissNode","inputs":[{"name":"nodeIdAddress","type":"address","internalType":"address"},{"name":"pendingBlock","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"domainSeparator","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getAssetAccountAddressByNodeAddress","inputs":[{"name":"nodeAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getDKGPublicKey","inputs":[{"name":"nodeAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getNode","inputs":[{"name":"nodeAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct INodeRegistry.Node","components":[{"name":"idAddress","type":"address","internalType":"address"},{"name":"dkgPublicKey","type":"bytes","internalType":"bytes"},{"name":"isEigenlayerNode","type":"bool","internalType":"bool"},{"name":"state","type":"bool","internalType":"bool"},{"name":"pendingUntilBlock","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getNodeAddressByAssetAccountAddress","inputs":[{"name":"assetAccountAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getNodeRegistryConfig","inputs":[],"outputs":[{"name":"controllerContractAddress","type":"address","internalType":"address"},{"name":"stakingContractAddress","type":"address","internalType":"address"},{"name":"serviceManagerContractAddress","type":"address","internalType":"address"},{"name":"nativeNodeStakingAmount","type":"uint256","internalType":"uint256"},{"name":"eigenlayerNodeStakingAmount","type":"uint256","internalType":"uint256"},{"name":"pendingBlockAfterQuit","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getNodeWithdrawableTokens","inputs":[{"name":"nodeAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"arpa","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"nodeActivate","inputs":[{"name":"assetAccountSignature","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":"nodeQuit","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"nodeRegister","inputs":[{"name":"dkgPublicKey","type":"bytes","internalType":"bytes"},{"name":"isEigenlayerNode","type":"bool","internalType":"bool"},{"name":"assetAccountAddress","type":"address","internalType":"address"},{"name":"assetAccountSignature","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":"nodeWithdraw","inputs":[{"name":"recipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setAssetAccount","inputs":[{"name":"assetAccountAddresses","type":"address[]","internalType":"address[]"},{"name":"nodeAddresses","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setNodeRegistryConfig","inputs":[{"name":"controllerContractAddress","type":"address","internalType":"address"},{"name":"stakingContractAddress","type":"address","internalType":"address"},{"name":"serviceManagerContractAddress","type":"address","internalType":"address"},{"name":"nativeNodeStakingAmount","type":"uint256","internalType":"uint256"},{"name":"eigenlayerNodeStakingAmount","type":"uint256","internalType":"uint256"},{"name":"pendingBlockAfterQuit","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"slashNode","inputs":[{"name":"nodeIdAddress","type":"address","internalType":"address"},{"name":"stakingRewardPenalty","type":"uint256","internalType":"uint256"},{"name":"pendingBlock","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeTo","inputs":[{"name":"newImplementation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"AdminChanged","inputs":[{"name":"previousAdmin","type":"address","indexed":false,"internalType":"address"},{"name":"newAdmin","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AssetAccountSet","inputs":[{"name":"assetAccountAddress","type":"address","indexed":true,"internalType":"address"},{"name":"nodeAddress","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BeaconUpgraded","inputs":[{"name":"beacon","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"DkgPublicKeyChanged","inputs":[{"name":"nodeAddress","type":"address","indexed":true,"internalType":"address"},{"name":"dkgPublicKey","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"NodeActivated","inputs":[{"name":"nodeAddress","type":"address","indexed":true,"internalType":"address"},{"name":"groupIndex","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"NodeQuit","inputs":[{"name":"nodeAddress","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"NodeRegistered","inputs":[{"name":"nodeAddress","type":"address","indexed":true,"internalType":"address"},{"name":"dkgPublicKey","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"groupIndex","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"NodeRewarded","inputs":[{"name":"nodeAddress","type":"address","indexed":true,"internalType":"address"},{"name":"ethAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"arpaAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"NodeSlashed","inputs":[{"name":"nodeIdAddress","type":"address","indexed":true,"internalType":"address"},{"name":"stakingRewardPenalty","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"pendingBlock","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"EIP1271SignatureExpired","inputs":[]},{"type":"error","name":"EIP1271SignatureNotFromSigner","inputs":[]},{"type":"error","name":"EIP1271SignatureSaltAlreadySpent","inputs":[]},{"type":"error","name":"EIP1271SignatureVerificationFailed","inputs":[]},{"type":"error","name":"InvalidArrayLength","inputs":[]},{"type":"error","name":"InvalidPublicKey","inputs":[]},{"type":"error","name":"InvalidZeroAddress","inputs":[]},{"type":"error","name":"NodeAlreadyActive","inputs":[]},{"type":"error","name":"NodeAlreadyRegistered","inputs":[]},{"type":"error","name":"NodeNotRegistered","inputs":[]},{"type":"error","name":"NodeStillPending","inputs":[{"name":"pendingUntilBlock","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"OperatorUnderStaking","inputs":[]},{"type":"error","name":"SenderNotController","inputs":[]}],"bytecode":{"object":"0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000e7565b600054610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000e5576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60805161379f6200011f60003960008181610c1a01528181610c6301528181610e2701528181610e670152610efa015261379f6000f3fe6080604052600436106101b75760003560e01c80638da5cb5b116100ec578063c4d66de81161008a578063e275cde611610064578063e275cde614610556578063e40e744b14610576578063f2fde38b146105d6578063f698da25146105f657600080fd5b8063c4d66de8146104cd578063c71e3c78146104ed578063d20cc1521461051d57600080fd5b80639d209048116100c65780639d2090481461042c578063a2cd23e614610459578063add60b4c14610479578063b447f4511461049957600080fd5b80638da5cb5b146103ce5780638ed47008146103ec578063914eb34d1461040c57600080fd5b80634ecea80d116101595780636cc7fb5d116101335780636cc7fb5d14610333578063715018a6146103845780637a2af56e146103995780638d2f3e6b146103ae57600080fd5b80634ecea80d146102eb5780634f1ef2861461030b57806352d1902d1461031e57600080fd5b8063227d0f4611610195578063227d0f461461025657806330d640b21461028b57806333f010a1146102ab5780633659cfe6146102cb57600080fd5b8063081342ba146101bc57806315dac9b2146101de57806320606b7014610214575b600080fd5b3480156101c857600080fd5b506101dc6101d7366004612cd4565b61060b565b005b3480156101ea57600080fd5b506101fe6101f9366004612d5c565b6107e9565b60405161020b9190612dc7565b60405180910390f35b34801561022057600080fd5b506102487f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b60405190815260200161020b565b34801561026257600080fd5b50610276610271366004612d5c565b610898565b6040805192835260208301919091520161020b565b34801561029757600080fd5b506101dc6102a6366004612f5a565b610939565b3480156102b757600080fd5b506101dc6102c6366004612fea565b610b87565b3480156102d757600080fd5b506101dc6102e6366004612d5c565b610c10565b3480156102f757600080fd5b506101dc610306366004612d5c565b610cf8565b6101dc610319366004613049565b610e1d565b34801561032a57600080fd5b50610248610eed565b34801561033f57600080fd5b5061036c61034e366004612d5c565b6001600160a01b03908116600090815260d460205260409020541690565b6040516001600160a01b03909116815260200161020b565b34801561039057600080fd5b506101dc610fa0565b3480156103a557600080fd5b506101dc610fb4565b3480156103ba57600080fd5b506101dc6103c9366004613097565b610fc3565b3480156103da57600080fd5b506097546001600160a01b031661036c565b3480156103f857600080fd5b506101dc6104073660046130cc565b611357565b34801561041857600080fd5b506101dc6104273660046130ff565b61153e565b34801561043857600080fd5b5061044c610447366004612d5c565b611696565b60405161020b91906131bc565b34801561046557600080fd5b506102486104743660046130cc565b6117b0565b34801561048557600080fd5b506101dc610494366004613219565b611865565b3480156104a557600080fd5b506102487fcc09e0f5a503fec4c1d9af748841a9210c73d71fc183762f71c57b2c6977f13681565b3480156104d957600080fd5b506101dc6104e8366004612d5c565b611877565b3480156104f957600080fd5b5061050d610508366004613219565b6119a3565b604051901515815260200161020b565b34801561052957600080fd5b5061036c610538366004612d5c565b6001600160a01b03908116600090815260d360205260409020541690565b34801561056257600080fd5b506101dc610571366004613243565b6119d1565b34801561058257600080fd5b5060c95460ca5460cb5460cc5460cd5460ce54604080516001600160a01b039788168152958716602087015295909316948401949094526060830152608082019290925260a081019190915260c00161020b565b3480156105e257600080fd5b506101dc6105f1366004612d5c565b611ba5565b34801561060257600080fd5b50610248611c1b565b610613611cb3565b82811461063357604051634ec4810560e11b815260040160405180910390fd5b60005b838110156107e25782828281811061065057610650613285565b90506020020160208101906106659190612d5c565b60d3600087878581811061067b5761067b613285565b90506020020160208101906106909190612d5c565b6001600160a01b039081168252602082019290925260400160002080546001600160a01b031916929091169190911790558484828181106106d3576106d3613285565b90506020020160208101906106e89190612d5c565b60d460008585858181106106fe576106fe613285565b90506020020160208101906107139190612d5c565b6001600160a01b039081168252602082019290925260400160002080546001600160a01b0319169290911691909117905582828281811061075657610756613285565b905060200201602081019061076b9190612d5c565b6001600160a01b031685858381811061078657610786613285565b905060200201602081019061079b9190612d5c565b6001600160a01b03167f89ca1a6d1ba2dd7a1222041d072dd6d2e7790f80973456811e834bb9cabedbea60405160405180910390a3806107da816132b1565b915050610636565b5050505050565b6001600160a01b038116600090815260d060205260409020600101805460609190610813906132ca565b80601f016020809104026020016040519081016040528092919081815260200182805461083f906132ca565b801561088c5780601f106108615761010080835404028352916020019161088c565b820191906000526020600020905b81548152906001019060200180831161086f57829003601f168201915b50505050509050919050565b6001600160a01b038116600090815260d160205260408120548190156108e2576001600160a01b038316600090815260d160205260409020546108dd90600190613304565b6108e5565b60005b6001600160a01b038416600090815260d260205260409020541561092d576001600160a01b038416600090815260d2602052604090205461092890600190613304565b610930565b60005b91509150915091565b6001600160a01b03828116600090815260d36020526040902054161561097257604051630eb0d31360e11b815260040160405180910390fd5b61097d858585611d0d565b6001600160a01b038216600081815260d3602090815260408083208054336001600160a01b0319918216811790925590845260d4909252909120805490911690911790558215610ac65760cb54604051637b4ffbbd60e01b81526001600160a01b0384811660048301526000921690637b4ffbbd90602401602060405180830381865afa158015610a12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a369190613317565b60cd54909150811015610a5c5760405163696aeee160e11b815260040160405180910390fd5b60cb5460405163aa2bcdbd60e01b81526001600160a01b039091169063aa2bcdbd90610a8e9086908690600401613330565b600060405180830381600087803b158015610aa857600080fd5b505af1158015610abc573d6000803e3d6000fd5b5050505050610b4a565b336001600160a01b03831614610ae057610ae08282611f84565b60ca5460cc5460405163282d3fdf60e01b81526001600160a01b038581166004830152602482019290925291169063282d3fdf90604401600060405180830381600087803b158015610b3157600080fd5b505af1158015610b45573d6000803e3d6000fd5b505050505b60405133906001600160a01b038416907f89ca1a6d1ba2dd7a1222041d072dd6d2e7790f80973456811e834bb9cabedbea90600090a35050505050565b610b8f611cb3565b6040805160c0810182526001600160a01b039788168082529688166020820181905295909716908701819052606087018490526080870183905260a090960181905260c980546001600160a01b0319908116909617905560ca8054861690941790935560cb805490941690941790925560cc9190915560cd9190915560ce55565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610c615760405162461bcd60e51b8152600401610c589061337c565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610caa600080516020613723833981519152546001600160a01b031690565b6001600160a01b031614610cd05760405162461bcd60e51b8152600401610c58906133c8565b610cd98161204b565b60408051600080825260208201909252610cf591839190612053565b50565b6001600160a01b038116610d1f5760405163f6b2911f60e01b815260040160405180910390fd5b33600090815260d1602090815260408083205460d2909252909120546001811115610d7c5733600090815260d260205260409020600190819055610d7c908490610d699084613304565b60cf546001600160a01b031691906121be565b6001821115610e185733600090815260d16020526040902060019081905560c9546001600160a01b031690630ad98f6a908590610db99086613304565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015610dff57600080fd5b505af1158015610e13573d6000803e3d6000fd5b505050505b505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610e655760405162461bcd60e51b8152600401610c589061337c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610eae600080516020613723833981519152546001600160a01b031690565b6001600160a01b031614610ed45760405162461bcd60e51b8152600401610c58906133c8565b610edd8261204b565b610ee982826001612053565b5050565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610f8d5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610c58565b5060008051602061372383398151915290565b610fa8611cb3565b610fb26000612210565b565b610fb23360c960050154612262565b33600081815260d060205260409020805490916001600160a01b0390911614610ffe576040516229eaad60e31b815260040160405180910390fd5b6002810154610100900460ff1615611029576040516324a228bb60e21b815260040160405180910390fd5b43816003015411156110565780600301546040516363525acb60e11b8152600401610c5891815260200190565b60028101805461ff00191661010017905560c95460405163ed157c3f60e01b81523360048201526000916001600160a01b03169063ed157c3f906024016020604051808303816000875af11580156110b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d69190613317565b60405181815290915033907ffc97cd9154b40031874ef09a9436a4b60052e4dcf40f21b1258be265fac4a3979060200160405180910390a233600090815260d4602052604090205460028301546001600160a01b039091169060ff16156112365760cb54604051637b4ffbbd60e01b81526001600160a01b0383811660048301526000921690637b4ffbbd90602401602060405180830381865afa158015611182573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a69190613317565b60cd549091508110156111cc5760405163696aeee160e11b815260040160405180910390fd5b60cb5460405163aa2bcdbd60e01b81526001600160a01b039091169063aa2bcdbd906111fe9085908990600401613330565b600060405180830381600087803b15801561121857600080fd5b505af115801561122c573d6000803e3d6000fd5b5050505050611351565b336001600160a01b03821614611250576112508185611f84565b60ca5460405163929ec53760e01b81526001600160a01b038381166004830152600092169063929ec53790602401602060405180830381865afa15801561129b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112bf9190613317565b60cc549091508110156107e25760ca5460cc546001600160a01b039091169063282d3fdf9084906112f1908590613304565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561133757600080fd5b505af115801561134b573d6000803e3d6000fd5b50505050505b50505050565b60c9546001600160a01b0316331461138257604051630f5caa3360e41b815260040160405180910390fd5b6001600160a01b03808416600090815260d06020908152604080832060d49092529091205460028201549192169060ff16156114825760cb54604051632955713760e01b81526001600160a01b0383811660048301526024820187905290911690632955713790604401600060405180830381600087803b15801561140657600080fd5b505af115801561141a573d6000803e3d6000fd5b505060cb54604051636c67cc6560e11b81526001600160a01b038581166004830152909116925063d8cf98ca9150602401600060405180830381600087803b15801561146557600080fd5b505af1158015611479573d6000803e3d6000fd5b505050506114e9565b60ca54604051638899fdeb60e01b81526001600160a01b0383811660048301526024820187905290911690638899fdeb90604401600060405180830381600087803b1580156114d057600080fd5b505af11580156114e4573d6000803e3d6000fd5b505050505b6114f38584612438565b60408051858152602081018590526001600160a01b038716917fa8d720d0a0a2e7c96bf9eb87433901ebb6331356c8f3283b2568de34478703cc910160405180910390a25050505050565b60c9546001600160a01b0316331461156957604051630f5caa3360e41b815260040160405180910390fd5b60005b8351811015611351578260d1600086848151811061158c5761158c613285565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008282546115c39190613414565b925050819055508160d260008684815181106115e1576115e1613285565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008282546116189190613414565b9250508190555083818151811061163157611631613285565b60200260200101516001600160a01b03167f8353a804115421789f3ab2eeb3f5215943906ce12100c91d40fc865caf742b6f848460405161167c929190918252602082015260400190565b60405180910390a28061168e816132b1565b91505061156c565b6040805160a08082018352600080835260606020808501829052848601839052908401829052608084018290526001600160a01b03868116835260d082529185902085519384019095528454909116825260018401805493949293918401916116fe906132ca565b80601f016020809104026020016040519081016040528092919081815260200182805461172a906132ca565b80156117775780601f1061174c57610100808354040283529160200191611777565b820191906000526020600020905b81548152906001019060200180831161175a57829003601f168201915b5050509183525050600282015460ff80821615156020840152610100909104161515604082015260039091015460609091015292915050565b604080517fcc09e0f5a503fec4c1d9af748841a9210c73d71fc183762f71c57b2c6977f13660208201526001600160a01b038516918101919091526060810183905260808101829052600090819060a0016040516020818303038152906040528051906020012090506000611823611c1b565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f1901815291905280516020909101209695505050505050565b61186d611cb3565b610ee98282612262565b600054610100900460ff16158080156118975750600054600160ff909116105b806118b15750303b1580156118b1575060005460ff166001145b6119145760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610c58565b6000805460ff191660011790558015611937576000805461ff0019166101001790555b60cf80546001600160a01b0319166001600160a01b03841617905561195a6124cb565b8015610ee9576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6001600160a01b038216600090815260d56020908152604080832084845290915290205460ff165b92915050565b33600081815260d060205260409020805490916001600160a01b0390911614611a0c576040516229eaad60e31b815260040160405180910390fd5b6002810154610100900460ff1615611a37576040516324a228bb60e21b815260040160405180910390fd5b6040516316f6db8160e01b815260009073__$34d23ddaee48904c6c566425acbfa0fc0e$__906316f6db8190611a739087908790600401613450565b608060405180830381865af4158015611a90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab49190613464565b604051636fda2c7960e01b815290915073__$34d23ddaee48904c6c566425acbfa0fc0e$__90636fda2c7990611aee9084906004016134e2565b602060405180830381865af4158015611b0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b2f9190613513565b611b4c5760405163145a1fdd60e31b815260040160405180910390fd5b60018201611b5b84868361357e565b50336001600160a01b03167f4a327ac4843af7a9586b5a2a2c312bd17289ae1d70da32855ed539fe39f86a508585604051611b97929190613450565b60405180910390a250505050565b611bad611cb3565b6001600160a01b038116611c125760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c58565b610cf581612210565b604080518082018252600b81526a415250414e6574776f726b60a81b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527fc43fa7e3599574b946896342cc7dd655e49b85dcfc1234920ef144a6e4f1f2e581840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6097546001600160a01b03163314610fb25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c58565b33600090815260d060205260409020546001600160a01b031615611d4457604051630eb0d31360e11b815260040160405180910390fd5b6040516316f6db8160e01b815260009073__$34d23ddaee48904c6c566425acbfa0fc0e$__906316f6db8190611d809087908790600401613450565b608060405180830381865af4158015611d9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dc19190613464565b604051636fda2c7960e01b815290915073__$34d23ddaee48904c6c566425acbfa0fc0e$__90636fda2c7990611dfb9084906004016134e2565b602060405180830381865af4158015611e18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e3c9190613513565b611e595760405163145a1fdd60e31b815260040160405180910390fd5b33600081815260d06020526040902080546001600160a01b031916909117815560018101611e8885878361357e565b5060028101805461010061ffff199091168515151717905533600081815260d16020908152604080832060019081905560d29092528083209190915560c954905163ed157c3f60e01b8152600481019390935290916001600160a01b039091169063ed157c3f906024016020604051808303816000875af1158015611f11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f359190613317565b9050336001600160a01b03167fd4ec586f4f9f417f99e20fe821fbaa10a10a4b95f8712a0c57c6d8ed970e98bd878784604051611f749392919061363e565b60405180910390a2505050505050565b4281604001511015611fa95760405163e3c3dba760e01b815260040160405180910390fd5b6001600160a01b038216600090815260d56020908152604080832084830151845290915290205460ff1615611ff15760405163a6dd314f60e01b815260040160405180910390fd5b600061200683836020015184604001516117b0565b9050612017838284600001516124fa565b506001600160a01b03909116600090815260d56020908152604080832093820151835292905220805460ff19166001179055565b610cf5611cb3565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561208657610e18836125de565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156120e0575060408051601f3d908101601f191682019092526120dd91810190613317565b60015b6121435760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610c58565b60008051602061372383398151915281146121b25760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610c58565b50610e1883838361267a565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610e1890849061269f565b609780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03808316600081815260d06020526040902080549092161461229d576040516229eaad60e31b815260040160405180910390fd5b60c9546040516335fe4a3f60e01b81526001600160a01b038581166004830152909116906335fe4a3f90602401600060405180830381600087803b1580156122e457600080fd5b505af11580156122f8573d6000803e3d6000fd5b505050506123068383612438565b6001600160a01b03808416600090815260d46020526040902054600283015491169060ff16156123945760cb54604051636c67cc6560e11b81526001600160a01b0383811660048301529091169063d8cf98ca90602401600060405180830381600087803b15801561237757600080fd5b505af115801561238b573d6000803e3d6000fd5b505050506123fe565b60ca5460cc54604051637eee288d60e01b81526001600160a01b0384811660048301526024820192909252911690637eee288d90604401600060405180830381600087803b1580156123e557600080fd5b505af11580156123f9573d6000803e3d6000fd5b505050505b6040516001600160a01b038516907f68577adbb6b0647e21353ff032be5797d9fa0879ce7e05fe617e40368441f97d90600090a250505050565b6001600160a01b038216600090815260d06020526040902060028101805461ff00191690556003015443908110156124a0576001600160a01b038316600090815260d0602052604081206003018054849290612495908490613414565b90915550610e189050565b6124aa8282613414565b6001600160a01b038416600090815260d06020526040902060030155505050565b600054610100900460ff166124f25760405162461bcd60e51b8152600401610c5890613662565b610fb2612774565b6001600160a01b0383163b156125a357604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e9061253a90869086906004016136ad565b602060405180830381865afa158015612557573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061257b91906136c6565b6001600160e01b03191614610e1857604051632c3534d160e11b815260040160405180910390fd5b826001600160a01b03166125b783836127a4565b6001600160a01b031614610e1857604051630825306160e31b815260040160405180910390fd5b6001600160a01b0381163b61264b5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610c58565b60008051602061372383398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b612683836127c8565b6000825111806126905750805b15610e18576113518383612808565b60006126f4826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166128349092919063ffffffff16565b90508051600014806127155750808060200190518101906127159190613513565b610e185760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610c58565b600054610100900460ff1661279b5760405162461bcd60e51b8152600401610c5890613662565b610fb233612210565b60008060006127b3858561284b565b915091506127c081612890565b509392505050565b6127d1816125de565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061282d8383604051806060016040528060278152602001613743602791396129da565b9392505050565b60606128438484600085612a52565b949350505050565b60008082516041036128815760208301516040840151606085015160001a61287587828585612b2d565b94509450505050612889565b506000905060025b9250929050565b60008160048111156128a4576128a46136f0565b036128ac5750565b60018160048111156128c0576128c06136f0565b0361290d5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610c58565b6002816004811115612921576129216136f0565b0361296e5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610c58565b6003816004811115612982576129826136f0565b03610cf55760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610c58565b6060600080856001600160a01b0316856040516129f79190613706565b600060405180830381855af49150503d8060008114612a32576040519150601f19603f3d011682016040523d82523d6000602084013e612a37565b606091505b5091509150612a4886838387612bf1565b9695505050505050565b606082471015612ab35760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610c58565b600080866001600160a01b03168587604051612acf9190613706565b60006040518083038185875af1925050503d8060008114612b0c576040519150601f19603f3d011682016040523d82523d6000602084013e612b11565b606091505b5091509150612b2287838387612bf1565b979650505050505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115612b645750600090506003612be8565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612bb8573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612be157600060019250925050612be8565b9150600090505b94509492505050565b60608315612c60578251600003612c59576001600160a01b0385163b612c595760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610c58565b5081612843565b6128438383815115612c755781518083602001fd5b8060405162461bcd60e51b8152600401610c589190612dc7565b60008083601f840112612ca157600080fd5b50813567ffffffffffffffff811115612cb957600080fd5b6020830191508360208260051b850101111561288957600080fd5b60008060008060408587031215612cea57600080fd5b843567ffffffffffffffff80821115612d0257600080fd5b612d0e88838901612c8f565b90965094506020870135915080821115612d2757600080fd5b50612d3487828801612c8f565b95989497509550505050565b80356001600160a01b0381168114612d5757600080fd5b919050565b600060208284031215612d6e57600080fd5b61282d82612d40565b60005b83811015612d92578181015183820152602001612d7a565b50506000910152565b60008151808452612db3816020860160208601612d77565b601f01601f19169290920160200192915050565b60208152600061282d6020830184612d9b565b60008083601f840112612dec57600080fd5b50813567ffffffffffffffff811115612e0457600080fd5b60208301915083602082850101111561288957600080fd5b8015158114610cf557600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612e6957612e69612e2a565b604052919050565b600082601f830112612e8257600080fd5b813567ffffffffffffffff811115612e9c57612e9c612e2a565b612eaf601f8201601f1916602001612e40565b818152846020838601011115612ec457600080fd5b816020850160208301376000918101602001919091529392505050565b600060608284031215612ef357600080fd5b6040516060810167ffffffffffffffff8282108183111715612f1757612f17612e2a565b816040528293508435915080821115612f2f57600080fd5b50612f3c85828601612e71565b82525060208301356020820152604083013560408201525092915050565b600080600080600060808688031215612f7257600080fd5b853567ffffffffffffffff80821115612f8a57600080fd5b612f9689838a01612dda565b909750955060208801359150612fab82612e1c565b819450612fba60408901612d40565b93506060880135915080821115612fd057600080fd5b50612fdd88828901612ee1565b9150509295509295909350565b60008060008060008060c0878903121561300357600080fd5b61300c87612d40565b955061301a60208801612d40565b945061302860408801612d40565b9350606087013592506080870135915060a087013590509295509295509295565b6000806040838503121561305c57600080fd5b61306583612d40565b9150602083013567ffffffffffffffff81111561308157600080fd5b61308d85828601612e71565b9150509250929050565b6000602082840312156130a957600080fd5b813567ffffffffffffffff8111156130c057600080fd5b61284384828501612ee1565b6000806000606084860312156130e157600080fd5b6130ea84612d40565b95602085013595506040909401359392505050565b60008060006060848603121561311457600080fd5b833567ffffffffffffffff8082111561312c57600080fd5b818601915086601f83011261314057600080fd5b813560208282111561315457613154612e2a565b8160051b9250613165818401612e40565b828152928401810192818101908a85111561317f57600080fd5b948201945b848610156131a45761319586612d40565b82529482019490820190613184565b9a918901359950506040909701359695505050505050565b602081526001600160a01b0382511660208201526000602083015160a060408401526131eb60c0840182612d9b565b9050604084015115156060840152606084015115156080840152608084015160a08401528091505092915050565b6000806040838503121561322c57600080fd5b61323583612d40565b946020939093013593505050565b6000806020838503121561325657600080fd5b823567ffffffffffffffff81111561326d57600080fd5b61327985828601612dda565b90969095509350505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016132c3576132c361329b565b5060010190565b600181811c908216806132de57607f821691505b6020821081036132fe57634e487b7160e01b600052602260045260246000fd5b50919050565b818103818111156119cb576119cb61329b565b60006020828403121561332957600080fd5b5051919050565b6001600160a01b038316815260406020820152600082516060604084015261335b60a0840182612d9b565b90506020840151606084015260408401516080840152809150509392505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b808201808211156119cb576119cb61329b565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000612843602083018486613427565b60006080828403121561347657600080fd5b82601f83011261348557600080fd5b6040516080810181811067ffffffffffffffff821117156134a8576134a8612e2a565b6040528060808401858111156134bd57600080fd5b845b818110156134d75780518352602092830192016134bf565b509195945050505050565b60808101818360005b600481101561350a5781518352602092830192909101906001016134eb565b50505092915050565b60006020828403121561352557600080fd5b815161282d81612e1c565b601f821115610e1857600081815260208120601f850160051c810160208610156135575750805b601f850160051c820191505b8181101561357657828155600101613563565b505050505050565b67ffffffffffffffff83111561359657613596612e2a565b6135aa836135a483546132ca565b83613530565b6000601f8411600181146135de57600085156135c65750838201355b600019600387901b1c1916600186901b1783556107e2565b600083815260209020601f19861690835b8281101561360f57868501358255602094850194600190920191016135ef565b508682101561362c5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b604081526000613652604083018587613427565b9050826020830152949350505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b8281526040602082015260006128436040830184612d9b565b6000602082840312156136d857600080fd5b81516001600160e01b03198116811461282d57600080fd5b634e487b7160e01b600052602160045260246000fd5b60008251613718818460208701612d77565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220a5ab721db78d60764ef2af5585f74fc3a95f9be571ee801affe840be1f5ea9bd64736f6c63430008120033","sourceMap":"1011:18777:97:-:0;;;1198:4:57;1155:48;;3666:53:97;;;;;;;;;-1:-1:-1;3690:22:97;:20;:22::i;:::-;1011:18777;;5939:280:56;6007:13;;;;;;;6006:14;5998:66;;;;-1:-1:-1;;;5998:66:56;;216:2:143;5998:66:56;;;198:21:143;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:143;;;338:37;392:19;;5998:66:56;;;;;;;;6078:12;;6094:15;6078:12;;;:31;6074:139;;6125:12;:30;;-1:-1:-1;;6125:30:56;6140:15;6125:30;;;;;;6174:28;;564:36:143;;;6174:28:56;;552:2:143;537:18;6174:28:56;;;;;;;6074:139;5939:280::o;422:184:143:-;1011:18777:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{"src/libraries/BLS.sol":{"BLS":[{"start":7016,"length":20},{"start":7141,"length":20},{"start":7797,"length":20},{"start":7922,"length":20}]}}},"deployedBytecode":{"object":"0x6080604052600436106101b75760003560e01c80638da5cb5b116100ec578063c4d66de81161008a578063e275cde611610064578063e275cde614610556578063e40e744b14610576578063f2fde38b146105d6578063f698da25146105f657600080fd5b8063c4d66de8146104cd578063c71e3c78146104ed578063d20cc1521461051d57600080fd5b80639d209048116100c65780639d2090481461042c578063a2cd23e614610459578063add60b4c14610479578063b447f4511461049957600080fd5b80638da5cb5b146103ce5780638ed47008146103ec578063914eb34d1461040c57600080fd5b80634ecea80d116101595780636cc7fb5d116101335780636cc7fb5d14610333578063715018a6146103845780637a2af56e146103995780638d2f3e6b146103ae57600080fd5b80634ecea80d146102eb5780634f1ef2861461030b57806352d1902d1461031e57600080fd5b8063227d0f4611610195578063227d0f461461025657806330d640b21461028b57806333f010a1146102ab5780633659cfe6146102cb57600080fd5b8063081342ba146101bc57806315dac9b2146101de57806320606b7014610214575b600080fd5b3480156101c857600080fd5b506101dc6101d7366004612cd4565b61060b565b005b3480156101ea57600080fd5b506101fe6101f9366004612d5c565b6107e9565b60405161020b9190612dc7565b60405180910390f35b34801561022057600080fd5b506102487f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b60405190815260200161020b565b34801561026257600080fd5b50610276610271366004612d5c565b610898565b6040805192835260208301919091520161020b565b34801561029757600080fd5b506101dc6102a6366004612f5a565b610939565b3480156102b757600080fd5b506101dc6102c6366004612fea565b610b87565b3480156102d757600080fd5b506101dc6102e6366004612d5c565b610c10565b3480156102f757600080fd5b506101dc610306366004612d5c565b610cf8565b6101dc610319366004613049565b610e1d565b34801561032a57600080fd5b50610248610eed565b34801561033f57600080fd5b5061036c61034e366004612d5c565b6001600160a01b03908116600090815260d460205260409020541690565b6040516001600160a01b03909116815260200161020b565b34801561039057600080fd5b506101dc610fa0565b3480156103a557600080fd5b506101dc610fb4565b3480156103ba57600080fd5b506101dc6103c9366004613097565b610fc3565b3480156103da57600080fd5b506097546001600160a01b031661036c565b3480156103f857600080fd5b506101dc6104073660046130cc565b611357565b34801561041857600080fd5b506101dc6104273660046130ff565b61153e565b34801561043857600080fd5b5061044c610447366004612d5c565b611696565b60405161020b91906131bc565b34801561046557600080fd5b506102486104743660046130cc565b6117b0565b34801561048557600080fd5b506101dc610494366004613219565b611865565b3480156104a557600080fd5b506102487fcc09e0f5a503fec4c1d9af748841a9210c73d71fc183762f71c57b2c6977f13681565b3480156104d957600080fd5b506101dc6104e8366004612d5c565b611877565b3480156104f957600080fd5b5061050d610508366004613219565b6119a3565b604051901515815260200161020b565b34801561052957600080fd5b5061036c610538366004612d5c565b6001600160a01b03908116600090815260d360205260409020541690565b34801561056257600080fd5b506101dc610571366004613243565b6119d1565b34801561058257600080fd5b5060c95460ca5460cb5460cc5460cd5460ce54604080516001600160a01b039788168152958716602087015295909316948401949094526060830152608082019290925260a081019190915260c00161020b565b3480156105e257600080fd5b506101dc6105f1366004612d5c565b611ba5565b34801561060257600080fd5b50610248611c1b565b610613611cb3565b82811461063357604051634ec4810560e11b815260040160405180910390fd5b60005b838110156107e25782828281811061065057610650613285565b90506020020160208101906106659190612d5c565b60d3600087878581811061067b5761067b613285565b90506020020160208101906106909190612d5c565b6001600160a01b039081168252602082019290925260400160002080546001600160a01b031916929091169190911790558484828181106106d3576106d3613285565b90506020020160208101906106e89190612d5c565b60d460008585858181106106fe576106fe613285565b90506020020160208101906107139190612d5c565b6001600160a01b039081168252602082019290925260400160002080546001600160a01b0319169290911691909117905582828281811061075657610756613285565b905060200201602081019061076b9190612d5c565b6001600160a01b031685858381811061078657610786613285565b905060200201602081019061079b9190612d5c565b6001600160a01b03167f89ca1a6d1ba2dd7a1222041d072dd6d2e7790f80973456811e834bb9cabedbea60405160405180910390a3806107da816132b1565b915050610636565b5050505050565b6001600160a01b038116600090815260d060205260409020600101805460609190610813906132ca565b80601f016020809104026020016040519081016040528092919081815260200182805461083f906132ca565b801561088c5780601f106108615761010080835404028352916020019161088c565b820191906000526020600020905b81548152906001019060200180831161086f57829003601f168201915b50505050509050919050565b6001600160a01b038116600090815260d160205260408120548190156108e2576001600160a01b038316600090815260d160205260409020546108dd90600190613304565b6108e5565b60005b6001600160a01b038416600090815260d260205260409020541561092d576001600160a01b038416600090815260d2602052604090205461092890600190613304565b610930565b60005b91509150915091565b6001600160a01b03828116600090815260d36020526040902054161561097257604051630eb0d31360e11b815260040160405180910390fd5b61097d858585611d0d565b6001600160a01b038216600081815260d3602090815260408083208054336001600160a01b0319918216811790925590845260d4909252909120805490911690911790558215610ac65760cb54604051637b4ffbbd60e01b81526001600160a01b0384811660048301526000921690637b4ffbbd90602401602060405180830381865afa158015610a12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a369190613317565b60cd54909150811015610a5c5760405163696aeee160e11b815260040160405180910390fd5b60cb5460405163aa2bcdbd60e01b81526001600160a01b039091169063aa2bcdbd90610a8e9086908690600401613330565b600060405180830381600087803b158015610aa857600080fd5b505af1158015610abc573d6000803e3d6000fd5b5050505050610b4a565b336001600160a01b03831614610ae057610ae08282611f84565b60ca5460cc5460405163282d3fdf60e01b81526001600160a01b038581166004830152602482019290925291169063282d3fdf90604401600060405180830381600087803b158015610b3157600080fd5b505af1158015610b45573d6000803e3d6000fd5b505050505b60405133906001600160a01b038416907f89ca1a6d1ba2dd7a1222041d072dd6d2e7790f80973456811e834bb9cabedbea90600090a35050505050565b610b8f611cb3565b6040805160c0810182526001600160a01b039788168082529688166020820181905295909716908701819052606087018490526080870183905260a090960181905260c980546001600160a01b0319908116909617905560ca8054861690941790935560cb805490941690941790925560cc9190915560cd9190915560ce55565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610c615760405162461bcd60e51b8152600401610c589061337c565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610caa600080516020613723833981519152546001600160a01b031690565b6001600160a01b031614610cd05760405162461bcd60e51b8152600401610c58906133c8565b610cd98161204b565b60408051600080825260208201909252610cf591839190612053565b50565b6001600160a01b038116610d1f5760405163f6b2911f60e01b815260040160405180910390fd5b33600090815260d1602090815260408083205460d2909252909120546001811115610d7c5733600090815260d260205260409020600190819055610d7c908490610d699084613304565b60cf546001600160a01b031691906121be565b6001821115610e185733600090815260d16020526040902060019081905560c9546001600160a01b031690630ad98f6a908590610db99086613304565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015610dff57600080fd5b505af1158015610e13573d6000803e3d6000fd5b505050505b505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610e655760405162461bcd60e51b8152600401610c589061337c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610eae600080516020613723833981519152546001600160a01b031690565b6001600160a01b031614610ed45760405162461bcd60e51b8152600401610c58906133c8565b610edd8261204b565b610ee982826001612053565b5050565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610f8d5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610c58565b5060008051602061372383398151915290565b610fa8611cb3565b610fb26000612210565b565b610fb23360c960050154612262565b33600081815260d060205260409020805490916001600160a01b0390911614610ffe576040516229eaad60e31b815260040160405180910390fd5b6002810154610100900460ff1615611029576040516324a228bb60e21b815260040160405180910390fd5b43816003015411156110565780600301546040516363525acb60e11b8152600401610c5891815260200190565b60028101805461ff00191661010017905560c95460405163ed157c3f60e01b81523360048201526000916001600160a01b03169063ed157c3f906024016020604051808303816000875af11580156110b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d69190613317565b60405181815290915033907ffc97cd9154b40031874ef09a9436a4b60052e4dcf40f21b1258be265fac4a3979060200160405180910390a233600090815260d4602052604090205460028301546001600160a01b039091169060ff16156112365760cb54604051637b4ffbbd60e01b81526001600160a01b0383811660048301526000921690637b4ffbbd90602401602060405180830381865afa158015611182573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a69190613317565b60cd549091508110156111cc5760405163696aeee160e11b815260040160405180910390fd5b60cb5460405163aa2bcdbd60e01b81526001600160a01b039091169063aa2bcdbd906111fe9085908990600401613330565b600060405180830381600087803b15801561121857600080fd5b505af115801561122c573d6000803e3d6000fd5b5050505050611351565b336001600160a01b03821614611250576112508185611f84565b60ca5460405163929ec53760e01b81526001600160a01b038381166004830152600092169063929ec53790602401602060405180830381865afa15801561129b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112bf9190613317565b60cc549091508110156107e25760ca5460cc546001600160a01b039091169063282d3fdf9084906112f1908590613304565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561133757600080fd5b505af115801561134b573d6000803e3d6000fd5b50505050505b50505050565b60c9546001600160a01b0316331461138257604051630f5caa3360e41b815260040160405180910390fd5b6001600160a01b03808416600090815260d06020908152604080832060d49092529091205460028201549192169060ff16156114825760cb54604051632955713760e01b81526001600160a01b0383811660048301526024820187905290911690632955713790604401600060405180830381600087803b15801561140657600080fd5b505af115801561141a573d6000803e3d6000fd5b505060cb54604051636c67cc6560e11b81526001600160a01b038581166004830152909116925063d8cf98ca9150602401600060405180830381600087803b15801561146557600080fd5b505af1158015611479573d6000803e3d6000fd5b505050506114e9565b60ca54604051638899fdeb60e01b81526001600160a01b0383811660048301526024820187905290911690638899fdeb90604401600060405180830381600087803b1580156114d057600080fd5b505af11580156114e4573d6000803e3d6000fd5b505050505b6114f38584612438565b60408051858152602081018590526001600160a01b038716917fa8d720d0a0a2e7c96bf9eb87433901ebb6331356c8f3283b2568de34478703cc910160405180910390a25050505050565b60c9546001600160a01b0316331461156957604051630f5caa3360e41b815260040160405180910390fd5b60005b8351811015611351578260d1600086848151811061158c5761158c613285565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008282546115c39190613414565b925050819055508160d260008684815181106115e1576115e1613285565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008282546116189190613414565b9250508190555083818151811061163157611631613285565b60200260200101516001600160a01b03167f8353a804115421789f3ab2eeb3f5215943906ce12100c91d40fc865caf742b6f848460405161167c929190918252602082015260400190565b60405180910390a28061168e816132b1565b91505061156c565b6040805160a08082018352600080835260606020808501829052848601839052908401829052608084018290526001600160a01b03868116835260d082529185902085519384019095528454909116825260018401805493949293918401916116fe906132ca565b80601f016020809104026020016040519081016040528092919081815260200182805461172a906132ca565b80156117775780601f1061174c57610100808354040283529160200191611777565b820191906000526020600020905b81548152906001019060200180831161175a57829003601f168201915b5050509183525050600282015460ff80821615156020840152610100909104161515604082015260039091015460609091015292915050565b604080517fcc09e0f5a503fec4c1d9af748841a9210c73d71fc183762f71c57b2c6977f13660208201526001600160a01b038516918101919091526060810183905260808101829052600090819060a0016040516020818303038152906040528051906020012090506000611823611c1b565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f1901815291905280516020909101209695505050505050565b61186d611cb3565b610ee98282612262565b600054610100900460ff16158080156118975750600054600160ff909116105b806118b15750303b1580156118b1575060005460ff166001145b6119145760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610c58565b6000805460ff191660011790558015611937576000805461ff0019166101001790555b60cf80546001600160a01b0319166001600160a01b03841617905561195a6124cb565b8015610ee9576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6001600160a01b038216600090815260d56020908152604080832084845290915290205460ff165b92915050565b33600081815260d060205260409020805490916001600160a01b0390911614611a0c576040516229eaad60e31b815260040160405180910390fd5b6002810154610100900460ff1615611a37576040516324a228bb60e21b815260040160405180910390fd5b6040516316f6db8160e01b815260009073__$34d23ddaee48904c6c566425acbfa0fc0e$__906316f6db8190611a739087908790600401613450565b608060405180830381865af4158015611a90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab49190613464565b604051636fda2c7960e01b815290915073__$34d23ddaee48904c6c566425acbfa0fc0e$__90636fda2c7990611aee9084906004016134e2565b602060405180830381865af4158015611b0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b2f9190613513565b611b4c5760405163145a1fdd60e31b815260040160405180910390fd5b60018201611b5b84868361357e565b50336001600160a01b03167f4a327ac4843af7a9586b5a2a2c312bd17289ae1d70da32855ed539fe39f86a508585604051611b97929190613450565b60405180910390a250505050565b611bad611cb3565b6001600160a01b038116611c125760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c58565b610cf581612210565b604080518082018252600b81526a415250414e6574776f726b60a81b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527fc43fa7e3599574b946896342cc7dd655e49b85dcfc1234920ef144a6e4f1f2e581840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6097546001600160a01b03163314610fb25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c58565b33600090815260d060205260409020546001600160a01b031615611d4457604051630eb0d31360e11b815260040160405180910390fd5b6040516316f6db8160e01b815260009073__$34d23ddaee48904c6c566425acbfa0fc0e$__906316f6db8190611d809087908790600401613450565b608060405180830381865af4158015611d9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dc19190613464565b604051636fda2c7960e01b815290915073__$34d23ddaee48904c6c566425acbfa0fc0e$__90636fda2c7990611dfb9084906004016134e2565b602060405180830381865af4158015611e18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e3c9190613513565b611e595760405163145a1fdd60e31b815260040160405180910390fd5b33600081815260d06020526040902080546001600160a01b031916909117815560018101611e8885878361357e565b5060028101805461010061ffff199091168515151717905533600081815260d16020908152604080832060019081905560d29092528083209190915560c954905163ed157c3f60e01b8152600481019390935290916001600160a01b039091169063ed157c3f906024016020604051808303816000875af1158015611f11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f359190613317565b9050336001600160a01b03167fd4ec586f4f9f417f99e20fe821fbaa10a10a4b95f8712a0c57c6d8ed970e98bd878784604051611f749392919061363e565b60405180910390a2505050505050565b4281604001511015611fa95760405163e3c3dba760e01b815260040160405180910390fd5b6001600160a01b038216600090815260d56020908152604080832084830151845290915290205460ff1615611ff15760405163a6dd314f60e01b815260040160405180910390fd5b600061200683836020015184604001516117b0565b9050612017838284600001516124fa565b506001600160a01b03909116600090815260d56020908152604080832093820151835292905220805460ff19166001179055565b610cf5611cb3565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561208657610e18836125de565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156120e0575060408051601f3d908101601f191682019092526120dd91810190613317565b60015b6121435760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610c58565b60008051602061372383398151915281146121b25760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610c58565b50610e1883838361267a565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610e1890849061269f565b609780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03808316600081815260d06020526040902080549092161461229d576040516229eaad60e31b815260040160405180910390fd5b60c9546040516335fe4a3f60e01b81526001600160a01b038581166004830152909116906335fe4a3f90602401600060405180830381600087803b1580156122e457600080fd5b505af11580156122f8573d6000803e3d6000fd5b505050506123068383612438565b6001600160a01b03808416600090815260d46020526040902054600283015491169060ff16156123945760cb54604051636c67cc6560e11b81526001600160a01b0383811660048301529091169063d8cf98ca90602401600060405180830381600087803b15801561237757600080fd5b505af115801561238b573d6000803e3d6000fd5b505050506123fe565b60ca5460cc54604051637eee288d60e01b81526001600160a01b0384811660048301526024820192909252911690637eee288d90604401600060405180830381600087803b1580156123e557600080fd5b505af11580156123f9573d6000803e3d6000fd5b505050505b6040516001600160a01b038516907f68577adbb6b0647e21353ff032be5797d9fa0879ce7e05fe617e40368441f97d90600090a250505050565b6001600160a01b038216600090815260d06020526040902060028101805461ff00191690556003015443908110156124a0576001600160a01b038316600090815260d0602052604081206003018054849290612495908490613414565b90915550610e189050565b6124aa8282613414565b6001600160a01b038416600090815260d06020526040902060030155505050565b600054610100900460ff166124f25760405162461bcd60e51b8152600401610c5890613662565b610fb2612774565b6001600160a01b0383163b156125a357604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e9061253a90869086906004016136ad565b602060405180830381865afa158015612557573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061257b91906136c6565b6001600160e01b03191614610e1857604051632c3534d160e11b815260040160405180910390fd5b826001600160a01b03166125b783836127a4565b6001600160a01b031614610e1857604051630825306160e31b815260040160405180910390fd5b6001600160a01b0381163b61264b5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610c58565b60008051602061372383398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b612683836127c8565b6000825111806126905750805b15610e18576113518383612808565b60006126f4826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166128349092919063ffffffff16565b90508051600014806127155750808060200190518101906127159190613513565b610e185760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610c58565b600054610100900460ff1661279b5760405162461bcd60e51b8152600401610c5890613662565b610fb233612210565b60008060006127b3858561284b565b915091506127c081612890565b509392505050565b6127d1816125de565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061282d8383604051806060016040528060278152602001613743602791396129da565b9392505050565b60606128438484600085612a52565b949350505050565b60008082516041036128815760208301516040840151606085015160001a61287587828585612b2d565b94509450505050612889565b506000905060025b9250929050565b60008160048111156128a4576128a46136f0565b036128ac5750565b60018160048111156128c0576128c06136f0565b0361290d5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610c58565b6002816004811115612921576129216136f0565b0361296e5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610c58565b6003816004811115612982576129826136f0565b03610cf55760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610c58565b6060600080856001600160a01b0316856040516129f79190613706565b600060405180830381855af49150503d8060008114612a32576040519150601f19603f3d011682016040523d82523d6000602084013e612a37565b606091505b5091509150612a4886838387612bf1565b9695505050505050565b606082471015612ab35760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610c58565b600080866001600160a01b03168587604051612acf9190613706565b60006040518083038185875af1925050503d8060008114612b0c576040519150601f19603f3d011682016040523d82523d6000602084013e612b11565b606091505b5091509150612b2287838387612bf1565b979650505050505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115612b645750600090506003612be8565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612bb8573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612be157600060019250925050612be8565b9150600090505b94509492505050565b60608315612c60578251600003612c59576001600160a01b0385163b612c595760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610c58565b5081612843565b6128438383815115612c755781518083602001fd5b8060405162461bcd60e51b8152600401610c589190612dc7565b60008083601f840112612ca157600080fd5b50813567ffffffffffffffff811115612cb957600080fd5b6020830191508360208260051b850101111561288957600080fd5b60008060008060408587031215612cea57600080fd5b843567ffffffffffffffff80821115612d0257600080fd5b612d0e88838901612c8f565b90965094506020870135915080821115612d2757600080fd5b50612d3487828801612c8f565b95989497509550505050565b80356001600160a01b0381168114612d5757600080fd5b919050565b600060208284031215612d6e57600080fd5b61282d82612d40565b60005b83811015612d92578181015183820152602001612d7a565b50506000910152565b60008151808452612db3816020860160208601612d77565b601f01601f19169290920160200192915050565b60208152600061282d6020830184612d9b565b60008083601f840112612dec57600080fd5b50813567ffffffffffffffff811115612e0457600080fd5b60208301915083602082850101111561288957600080fd5b8015158114610cf557600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612e6957612e69612e2a565b604052919050565b600082601f830112612e8257600080fd5b813567ffffffffffffffff811115612e9c57612e9c612e2a565b612eaf601f8201601f1916602001612e40565b818152846020838601011115612ec457600080fd5b816020850160208301376000918101602001919091529392505050565b600060608284031215612ef357600080fd5b6040516060810167ffffffffffffffff8282108183111715612f1757612f17612e2a565b816040528293508435915080821115612f2f57600080fd5b50612f3c85828601612e71565b82525060208301356020820152604083013560408201525092915050565b600080600080600060808688031215612f7257600080fd5b853567ffffffffffffffff80821115612f8a57600080fd5b612f9689838a01612dda565b909750955060208801359150612fab82612e1c565b819450612fba60408901612d40565b93506060880135915080821115612fd057600080fd5b50612fdd88828901612ee1565b9150509295509295909350565b60008060008060008060c0878903121561300357600080fd5b61300c87612d40565b955061301a60208801612d40565b945061302860408801612d40565b9350606087013592506080870135915060a087013590509295509295509295565b6000806040838503121561305c57600080fd5b61306583612d40565b9150602083013567ffffffffffffffff81111561308157600080fd5b61308d85828601612e71565b9150509250929050565b6000602082840312156130a957600080fd5b813567ffffffffffffffff8111156130c057600080fd5b61284384828501612ee1565b6000806000606084860312156130e157600080fd5b6130ea84612d40565b95602085013595506040909401359392505050565b60008060006060848603121561311457600080fd5b833567ffffffffffffffff8082111561312c57600080fd5b818601915086601f83011261314057600080fd5b813560208282111561315457613154612e2a565b8160051b9250613165818401612e40565b828152928401810192818101908a85111561317f57600080fd5b948201945b848610156131a45761319586612d40565b82529482019490820190613184565b9a918901359950506040909701359695505050505050565b602081526001600160a01b0382511660208201526000602083015160a060408401526131eb60c0840182612d9b565b9050604084015115156060840152606084015115156080840152608084015160a08401528091505092915050565b6000806040838503121561322c57600080fd5b61323583612d40565b946020939093013593505050565b6000806020838503121561325657600080fd5b823567ffffffffffffffff81111561326d57600080fd5b61327985828601612dda565b90969095509350505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016132c3576132c361329b565b5060010190565b600181811c908216806132de57607f821691505b6020821081036132fe57634e487b7160e01b600052602260045260246000fd5b50919050565b818103818111156119cb576119cb61329b565b60006020828403121561332957600080fd5b5051919050565b6001600160a01b038316815260406020820152600082516060604084015261335b60a0840182612d9b565b90506020840151606084015260408401516080840152809150509392505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b808201808211156119cb576119cb61329b565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000612843602083018486613427565b60006080828403121561347657600080fd5b82601f83011261348557600080fd5b6040516080810181811067ffffffffffffffff821117156134a8576134a8612e2a565b6040528060808401858111156134bd57600080fd5b845b818110156134d75780518352602092830192016134bf565b509195945050505050565b60808101818360005b600481101561350a5781518352602092830192909101906001016134eb565b50505092915050565b60006020828403121561352557600080fd5b815161282d81612e1c565b601f821115610e1857600081815260208120601f850160051c810160208610156135575750805b601f850160051c820191505b8181101561357657828155600101613563565b505050505050565b67ffffffffffffffff83111561359657613596612e2a565b6135aa836135a483546132ca565b83613530565b6000601f8411600181146135de57600085156135c65750838201355b600019600387901b1c1916600186901b1783556107e2565b600083815260209020601f19861690835b8281101561360f57868501358255602094850194600190920191016135ef565b508682101561362c5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b604081526000613652604083018587613427565b9050826020830152949350505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b8281526040602082015260006128436040830184612d9b565b6000602082840312156136d857600080fd5b81516001600160e01b03198116811461282d57600080fd5b634e487b7160e01b600052602160045260246000fd5b60008251613718818460208701612d77565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220a5ab721db78d60764ef2af5585f74fc3a95f9be571ee801affe840be1f5ea9bd64736f6c63430008120033","sourceMap":"1011:18777:97:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4811:620;;;;;;;;;;-1:-1:-1;4811:620:97;;;;;:::i;:::-;;:::i;:::-;;11861:161;;;;;;;;;;-1:-1:-1;11861:161:97;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1228:130;;;;;;;;;;;;1278:80;1228:130;;;;;2454:25:143;;;2442:2;2427:18;1228:130:97;2308:177:143;12173:387:97;;;;;;;;;;-1:-1:-1;12173:387:97;;;;;:::i;:::-;;:::i;:::-;;;;2664:25:143;;;2720:2;2705:18;;2698:34;;;;2637:18;12173:387:97;2490:248:143;5500:1436:97;;;;;;;;;;-1:-1:-1;5500:1436:97;;;;;:::i;:::-;;:::i;3998:626::-;;;;;;;;;;-1:-1:-1;3998:626:97;;;;;:::i;:::-;;:::i;3408:195:57:-;;;;;;;;;;-1:-1:-1;3408:195:57;;;;;:::i;:::-;;:::i;9510:686:97:-;;;;;;;;;;-1:-1:-1;9510:686:97;;;;;:::i;:::-;;:::i;3922:220:57:-;;;;;;:::i;:::-;;:::i;3027:131::-;;;;;;;;;;;;;:::i;13524:214:97:-;;;;;;;;;;-1:-1:-1;13524:214:97;;;;;:::i;:::-;-1:-1:-1;;;;;13697:34:97;;;13667:7;13697:34;;;:21;:34;;;;;;;;13524:214;;;;-1:-1:-1;;;;;6869:55:143;;;6851:74;;6839:2;6824:18;13524:214:97;6705:226:143;2085:101:51;;;;;;;;;;;;;:::i;8772:128:97:-;;;;;;;;;;;;;:::i;6942:1824::-;;;;;;;;;;-1:-1:-1;6942:1824:97;;;;;:::i;:::-;;:::i;1462:85:51:-;;;;;;;;;;-1:-1:-1;1534:6:51;;-1:-1:-1;;;;;1534:6:51;1462:85;;10730:1071:97;;;;;;;;;;-1:-1:-1;10730:1071:97;;;;;:::i;:::-;;:::i;10202:467::-;;;;;;;;;;-1:-1:-1;10202:467:97;;;;;:::i;:::-;;:::i;12028:139::-;;;;;;;;;;-1:-1:-1;12028:139:97;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;14080:531::-;;;;;;;;;;-1:-1:-1;14080:531:97;;;;;:::i;:::-;;:::i;4630:175::-;;;;;;;;;;-1:-1:-1;4630:175:97;;;;;:::i;:::-;;:::i;1452:160::-;;;;;;;;;;;;1520:92;1452:160;;3725:146;;;;;;;;;;-1:-1:-1;3725:146:97;;;;;:::i;:::-;;:::i;14936:238::-;;;;;;;;;;-1:-1:-1;14936:238:97;;;;;:::i;:::-;;:::i;:::-;;;10447:14:143;;10440:22;10422:41;;10410:2;10395:18;14936:238:97;10282:187:143;13288:230:97;;;;;;;;;;-1:-1:-1;13288:230:97;;;;;:::i;:::-;-1:-1:-1;;;;;13469:42:97;;;13439:7;13469:42;;;:21;:42;;;;;;;;13288:230;8906:598;;;;;;;;;;-1:-1:-1;8906:598:97;;;;;:::i;:::-;;:::i;12566:716::-;;;;;;;;;;-1:-1:-1;13000:7:97;:33;13047:30;;13091:37;;13142:31;;13187:35;;13236:29;;12566:716;;;-1:-1:-1;;;;;13000:33:97;;;11236:34:143;;13047:30:97;;;11301:2:143;11286:18;;11279:43;13091:37:97;;;;11338:18:143;;;11331:43;;;;11405:2;11390:18;;11383:34;11448:3;11433:19;;11426:35;;;;11492:3;11477:19;;11470:35;;;;11162:3;11147:19;12566:716:97;10888:623:143;2335:198:51;;;;;;;;;;-1:-1:-1;2335:198:51;;;;;:::i;:::-;;:::i;14724:206:97:-;;;;;;;;;;;;;:::i;4811:620::-;1355:13:51;:11;:13::i;:::-;5002:52:97;;::::1;4998:110;;5077:20;;-1:-1:-1::0;;;5077:20:97::1;;;;;;;;;;;4998:110;5122:9;5117:308;5137:32:::0;;::::1;5117:308;;;5240:13;;5254:1;5240:16;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;5190:21;:47;5212:21;;5234:1;5212:24;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;5190:47:97;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;5190:47:97;:66;;-1:-1:-1;;;;;;5190:66:97::1;::::0;;;::::1;::::0;;;::::1;::::0;;5312:21;;5334:1;5312:24;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;5270:21;:39;5292:13;;5306:1;5292:16;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;5270:39:97;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;5270:39:97;:66;;-1:-1:-1;;;;;;5270:66:97::1;::::0;;;::::1;::::0;;;::::1;::::0;;5397:13;;5411:1;5397:16;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;5355:59:97::1;5371:21;;5393:1;5371:24;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;5355:59:97::1;;;;;;;;;;;5171:3:::0;::::1;::::0;::::1;:::i;:::-;;;;5117:308;;;;4811:620:::0;;;;:::o;11861:161::-;-1:-1:-1;;;;;11983:19:97;;;;;;:6;:19;;;;;:32;;11976:39;;11952:12;;11983:32;11976:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11861:161;;;:::o;12173:387::-;-1:-1:-1;;;;;12359:30:97;;12306:7;12359:30;;;:17;:30;;;;;;12306:7;;12359:35;:90;;-1:-1:-1;;;;;12402:30:97;;;;;;:17;:30;;;;;;:46;;1780:1;;12402:46;:::i;:::-;12359:90;;;12397:1;12359:90;-1:-1:-1;;;;;12463:25:97;;;;;;:12;:25;;;;;;:30;:80;;-1:-1:-1;;;;;12501:25:97;;;;;;:12;:25;;;;;;:41;;1780:1;;12501:41;:::i;:::-;12463:80;;;12496:1;12463:80;12338:215;;;;12173:387;;;:::o;5500:1436::-;-1:-1:-1;;;;;5761:42:97;;;5815:1;5761:42;;;:21;:42;;;;;;;:56;5757:117;;5840:23;;-1:-1:-1;;;5840:23:97;;;;;;;;;;;5757:117;5884:45;5898:12;;5912:16;5884:13;:45::i;:::-;-1:-1:-1;;;;;5940:42:97;;;;;;:21;:42;;;;;;;;:55;;5985:10;-1:-1:-1;;;;;;5940:55:97;;;;;;;;6005:33;;;:21;:33;;;;;;:55;;;;;;;;;;6071:795;;;;6139:37;;6123:92;;-1:-1:-1;;;6123:92:97;;-1:-1:-1;;;;;6869:55:143;;;6123:92:97;;;6851:74:143;6107:13:97;;6139:37;;6123:71;;6824:18:143;;6123:92:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6241:35;;6107:108;;-1:-1:-1;6233:43:97;;6229:111;;;6303:22;;-1:-1:-1;;;6303:22:97;;;;;;;;;;;6229:111;6369:37;;6353:145;;-1:-1:-1;;;6353:145:97;;-1:-1:-1;;;;;6369:37:97;;;;6353:71;;:145;;6442:19;;6463:21;;6353:145;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6093:416;6071:795;;;6533:10;-1:-1:-1;;;;;6533:33:97;;;6529:155;;6586:83;6626:19;6647:21;6586:39;:83::i;:::-;6765:30;;6823:31;;6752:103;;-1:-1:-1;;;6752:103:97;;-1:-1:-1;;;;;13473:55:143;;;6752:103:97;;;13455:74:143;13545:18;;;13538:34;;;;6765:30:97;;;6752:49;;13428:18:143;;6752:103:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6071:795;6881:48;;6918:10;;-1:-1:-1;;;;;6881:48:97;;;;;;;;5500:1436;;;;;:::o;3998:626::-;1355:13:51;:11;:13::i;:::-;4358:259:97::1;::::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;4358:259:97;;::::1;::::0;;;;;::::1;;::::0;::::1;::::0;;;;;;::::1;::::0;;;;;;;;;;;;;;;;;;;;;;;;;4348:7:::1;:269:::0;;-1:-1:-1;;;;;;4348:269:97;;::::1;::::0;;::::1;::::0;;;;;;::::1;::::0;;::::1;::::0;;;;;;;;::::1;::::0;;::::1;::::0;;;;;;;;;;;;;;;3998:626::o;3408:195:57:-;-1:-1:-1;;;;;1764:6:57;1747:23;1755:4;1747:23;1739:80;;;;-1:-1:-1;;;1739:80:57;;;;;;;:::i;:::-;;;;;;;;;1861:6;-1:-1:-1;;;;;1837:30:57;:20;-1:-1:-1;;;;;;;;;;;1557:65:54;-1:-1:-1;;;;;1557:65:54;;1478:151;1837:20:57;-1:-1:-1;;;;;1837:30:57;;1829:87;;;;-1:-1:-1;;;1829:87:57;;;;;;;:::i;:::-;3489:36:::1;3507:17;3489;:36::i;:::-;3576:12;::::0;;3586:1:::1;3576:12:::0;;;::::1;::::0;::::1;::::0;;;3535:61:::1;::::0;3557:17;;3576:12;3535:21:::1;:61::i;:::-;3408:195:::0;:::o;9510:686:97:-;-1:-1:-1;;;;;9598:23:97;;9594:81;;9644:20;;-1:-1:-1;;;9644:20:97;;;;;;;;;;;9594:81;9722:10;9684:17;9704:29;;;:17;:29;;;;;;;;;9764:12;:24;;;;;;;1780:1;9802:26;;9798:168;;;9857:10;9844:24;;;;:12;:24;;;;;1780:1;9844:40;;;;9898:57;;9917:9;;9928:26;;:10;:26;:::i;:::-;9898:5;;-1:-1:-1;;;;;9898:5:97;;:57;:18;:57::i;:::-;1780:1;9979:25;;9975:215;;;10038:10;10020:29;;;;:17;:29;;;;;1780:1;10020:45;;;;10091:7;:33;-1:-1:-1;;;;;10091:33:97;;10079:62;;10142:9;;10153:25;;:9;:25;:::i;:::-;10079:100;;-1:-1:-1;;;;;;10079:100:97;;;;;;;-1:-1:-1;;;;;13473:55:143;;;10079:100:97;;;13455:74:143;13545:18;;;13538:34;13428:18;;10079:100:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9975:215;9584:612;;9510:686;:::o;3922:220:57:-;-1:-1:-1;;;;;1764:6:57;1747:23;1755:4;1747:23;1739:80;;;;-1:-1:-1;;;1739:80:57;;;;;;;:::i;:::-;1861:6;-1:-1:-1;;;;;1837:30:57;:20;-1:-1:-1;;;;;;;;;;;1557:65:54;-1:-1:-1;;;;;1557:65:54;;1478:151;1837:20:57;-1:-1:-1;;;;;1837:30:57;;1829:87;;;;-1:-1:-1;;;1829:87:57;;;;;;;:::i;:::-;4037:36:::1;4055:17;4037;:36::i;:::-;4083:52;4105:17;4124:4;4130;4083:21;:52::i;:::-;3922:220:::0;;:::o;3027:131::-;3105:7;2190:4;-1:-1:-1;;;;;2199:6:57;2182:23;;2174:92;;;;-1:-1:-1;;;2174:92:57;;14611:2:143;2174:92:57;;;14593:21:143;14650:2;14630:18;;;14623:30;14689:34;14669:18;;;14662:62;14760:26;14740:18;;;14733:54;14804:19;;2174:92:57;14409:420:143;2174:92:57;-1:-1:-1;;;;;;;;;;;;3027:131:57;:::o;2085:101:51:-;1355:13;:11;:13::i;:::-;2149:30:::1;2176:1;2149:18;:30::i;:::-;2085:101::o:0;8772:128:97:-;8835:58;8851:10;8863:7;:29;;;8835:15;:58::i;6942:1824::-;7127:10;7100:17;7120:18;;;:6;:18;;;;;7152:14;;7120:18;;-1:-1:-1;;;;;7152:14:97;;;:28;7148:85;;7203:19;;-1:-1:-1;;;7203:19:97;;;;;;;;;;;7148:85;7247:10;;;;;;;;;7243:67;;;7280:19;;-1:-1:-1;;;7280:19:97;;;;;;;;;;;7243:67;7349:12;7324:4;:22;;;:37;7320:115;;;7401:4;:22;;;7384:40;;-1:-1:-1;;;7384:40:97;;;;;;2454:25:143;;2442:2;2427:18;;2308:177;7320:115:97;7445:10;;;:17;;-1:-1:-1;;7445:17:97;;;;;7506:7;:33;7494:67;;-1:-1:-1;;;7494:67:97;;7550:10;7494:67;;;6851:74:143;-1:-1:-1;;;;;;;7506:33:97;;7494:55;;6824:18:143;;7494:67:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7577:37;;2454:25:143;;;7473:88:97;;-1:-1:-1;7591:10:97;;7577:37;;2442:2:143;2427:18;7577:37:97;;;;;;;7677:10;7625:27;7655:33;;;:21;:33;;;;;;7703:21;;;;-1:-1:-1;;;;;7655:33:97;;;;7703:21;;7699:1061;;;7772:37;;7756:92;;-1:-1:-1;;;7756:92:97;;-1:-1:-1;;;;;6869:55:143;;;7756:92:97;;;6851:74:143;7740:13:97;;7772:37;;7756:71;;6824:18:143;;7756:92:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7874:35;;7740:108;;-1:-1:-1;7866:43:97;;7862:111;;;7936:22;;-1:-1:-1;;;7936:22:97;;;;;;;;;;;7862:111;8002:37;;7986:145;;-1:-1:-1;;;7986:145:97;;-1:-1:-1;;;;;8002:37:97;;;;7986:71;;:145;;8075:19;;8096:21;;7986:145;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7726:416;7699:1061;;;8166:10;-1:-1:-1;;;;;8166:33:97;;;8162:155;;8219:83;8259:19;8280:21;8219:39;:83::i;:::-;8427:30;;8414:81;;-1:-1:-1;;;8414:81:97;;-1:-1:-1;;;;;6869:55:143;;;8414:81:97;;;6851:74:143;8391:20:97;;8427:30;;8414:60;;6824:18:143;;8414:81:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8528:31;;8391:104;;-1:-1:-1;8513:46:97;;8509:241;;;8592:30;;8671:31;;-1:-1:-1;;;;;8592:30:97;;;;8579:49;;8650:19;;8671:46;;8705:12;;8671:46;:::i;:::-;8579:156;;-1:-1:-1;;;;;;8579:156:97;;;;;;;-1:-1:-1;;;;;13473:55:143;;;8579:156:97;;;13455:74:143;13545:18;;;13538:34;13428:18;;8579:156:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8148:612;7699:1061;7090:1676;;;6942:1824;:::o;10730:1071::-;10903:7;:33;-1:-1:-1;;;;;10903:33:97;10889:10;:47;10885:106;;10959:21;;-1:-1:-1;;;10959:21:97;;;;;;;;;;;10885:106;-1:-1:-1;;;;;11021:21:97;;;11001:17;11021:21;;;:6;:21;;;;;;;;11083;:36;;;;;;;11134:21;;;;11021;;11083:36;;11134:21;;11130:536;;;11187:37;;11171:150;;-1:-1:-1;;;11171:150:97;;-1:-1:-1;;;;;13473:55:143;;;11171:150:97;;;13455:74:143;13545:18;;;13538:34;;;11187:37:97;;;;11171:77;;13428:18:143;;11171:150:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11351:37:97;;11335:94;;-1:-1:-1;;;11335:94:97;;-1:-1:-1;;;;;6869:55:143;;;11335:94:97;;;6851:74:143;11351:37:97;;;;-1:-1:-1;11335:73:97;;-1:-1:-1;6824:18:143;;11335:94:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11130:536;;;11529:30;;11516:139;;-1:-1:-1;;;11516:139:97;;-1:-1:-1;;;;;13473:55:143;;;11516:139:97;;;13455:74:143;13545:18;;;13538:34;;;11529:30:97;;;;11516:66;;13428:18:143;;11516:139:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11130:536;11676:40;11688:13;11703:12;11676:11;:40::i;:::-;11732:62;;;2664:25:143;;;2720:2;2705:18;;2698:34;;;-1:-1:-1;;;;;11732:62:97;;;;;2637:18:143;11732:62:97;;;;;;;10875:926;;10730:1071;;;:::o;10202:467::-;10343:7;:33;-1:-1:-1;;;;;10343:33:97;10329:10;:47;10325:106;;10399:21;;-1:-1:-1;;;10399:21:97;;;;;;;;;;;10325:106;10446:9;10441:222;10465:5;:12;10461:1;:16;10441:222;;;10529:9;10498:17;:27;10516:5;10522:1;10516:8;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;10498:27:97;-1:-1:-1;;;;;10498:27:97;;;;;;;;;;;;;:40;;;;;;;:::i;:::-;;;;;;;;10578:10;10552:12;:22;10565:5;10571:1;10565:8;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;10552:22:97;-1:-1:-1;;;;;10552:22:97;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;10620:5;10626:1;10620:8;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;10607:45:97;;10630:9;10641:10;10607:45;;;;;;2664:25:143;;;2720:2;2705:18;;2698:34;2652:2;2637:18;;2490:248;10607:45:97;;;;;;;;10479:3;;;;:::i;:::-;;;;10441:222;;12028:139;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12141:19:97;;;;;:6;:19;;;;;;12134:26;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12134:26:97;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;12134:26:97;;;-1:-1:-1;;12134:26:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12028:139;-1:-1:-1;;12028:139:97:o;14080:531::-;14358:80;;;1520:92;14358:80;;;15377:25:143;-1:-1:-1;;;;;15438:55:143;;15418:18;;;15411:83;;;;15510:18;;;15503:34;;;15553:18;;;15546:34;;;14267:7:97;;;;15349:19:143;;14358:80:97;;;;;;;;;;;;14348:91;;;;;;14327:112;;14486:18;14546:17;:15;:17::i;:::-;14517:59;;-1:-1:-1;;;14517:59:97;;;15849:27:143;15892:11;;;15885:27;;;;15928:12;;;15921:28;;;15965:12;;14517:59:97;;;;;;-1:-1:-1;;14517:59:97;;;;;;14507:70;;14517:59;14507:70;;;;;14080:531;-1:-1:-1;;;;;;14080:531:97:o;4630:175::-;1355:13:51;:11;:13::i;:::-;4754:44:97::1;4770:13;4785:12;4754:15;:44::i;3725:146::-:0;3279:19:56;3302:13;;;;;;3301:14;;3347:34;;;;-1:-1:-1;3365:12:56;;3380:1;3365:12;;;;:16;3347:34;3346:108;;;-1:-1:-1;3426:4:56;1713:19:58;:23;;;3387:66:56;;-1:-1:-1;3436:12:56;;;;;:17;3387:66;3325:201;;;;-1:-1:-1;;;3325:201:56;;16190:2:143;3325:201:56;;;16172:21:143;16229:2;16209:18;;;16202:30;16268:34;16248:18;;;16241:62;-1:-1:-1;;;16319:18:143;;;16312:44;16373:19;;3325:201:56;15988:410:143;3325:201:56;3536:12;:16;;-1:-1:-1;;3536:16:56;3551:1;3536:16;;;3562:65;;;;3596:13;:20;;-1:-1:-1;;3596:20:56;;;;;3562:65;3817:5:97::1;:20:::0;;-1:-1:-1;;;;;;3817:20:97::1;-1:-1:-1::0;;;;;3817:20:97;::::1;;::::0;;3848:16:::1;:14;:16::i;:::-;3651:14:56::0;3647:99;;;3697:5;3681:21;;-1:-1:-1;;3681:21:56;;;3721:14;;-1:-1:-1;16555:36:143;;3721:14:56;;16543:2:143;16528:18;3721:14:56;;;;;;;3269:483;3725:146:97;:::o;14936:238::-;-1:-1:-1;;;;;15116:45:97;;15089:4;15116:45;;;:24;:45;;;;;;;;:51;;;;;;;;;;;14936:238;;;;;:::o;8906:598::-;9033:10;9006:17;9026:18;;;:6;:18;;;;;9058:14;;9026:18;;-1:-1:-1;;;;;9058:14:97;;;:28;9054:85;;9109:19;;-1:-1:-1;;;9109:19:97;;;;;;;;;;;9054:85;9153:10;;;;;;;;;9149:67;;;9186:19;;-1:-1:-1;;;9186:19:97;;;;;;;;;;;9149:67;9256:36;;-1:-1:-1;;;9256:36:97;;9226:27;;9256:3;;:22;;:36;;9279:12;;;;9256:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9307:31;;-1:-1:-1;;;9307:31:97;;9226:66;;-1:-1:-1;9307:3:97;;:20;;:31;;9226:66;;9307:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9302:92;;9361:22;;-1:-1:-1;;;9361:22:97;;;;;;;;;;;9302:92;9404:17;;;:32;9424:12;;9404:17;:32;:::i;:::-;;9472:10;-1:-1:-1;;;;;9452:45:97;;9484:12;;9452:45;;;;;;;:::i;:::-;;;;;;;;8996:508;;8906:598;;:::o;2335:198:51:-;1355:13;:11;:13::i;:::-;-1:-1:-1;;;;;2423:22:51;::::1;2415:73;;;::::0;-1:-1:-1;;;2415:73:51;;21161:2:143;2415:73:51::1;::::0;::::1;21143:21:143::0;21200:2;21180:18;;;21173:30;21239:34;21219:18;;;21212:62;-1:-1:-1;;;21290:18:143;;;21283:36;21336:19;;2415:73:51::1;20959:402:143::0;2415:73:51::1;2498:28;2517:8;2498:18;:28::i;14724:206:97:-:0;14870:20;;;;;;;;;;;-1:-1:-1;;;14870:20:97;;;;;14832:90;;1278:80;14832:90;;;21597:25:143;14860:31:97;21638:18:143;;;21631:34;14893:13:97;21681:18:143;;;21674:34;14916:4:97;21724:18:143;;;;21717:83;;;;14832:90:97;;;;;;;;;;21569:19:143;;;;14832:90:97;;;14822:101;;;;;;14724:206::o;1620:130:51:-;1534:6;;-1:-1:-1;;;;;1534:6:51;965:10:59;1683:23:51;1675:68;;;;-1:-1:-1;;;1675:68:51;;22013:2:143;1675:68:51;;;21995:21:143;;;22032:18;;;22025:30;22091:34;22071:18;;;22064:62;22143:18;;1675:68:51;21811:356:143;15238:984:97;15343:10;15376:1;15336:18;;;:6;:18;;;;;:28;-1:-1:-1;;;;;15336:28:97;:42;15332:103;;15401:23;;-1:-1:-1;;;15401:23:97;;;;;;;;;;;15332:103;15475:36;;-1:-1:-1;;;15475:36:97;;15445:27;;15475:3;;:22;;:36;;15498:12;;;;15475:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15526:31;;-1:-1:-1;;;15526:31:97;;15445:66;;-1:-1:-1;15526:3:97;;:20;;:31;;15445:66;;15526:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15521:92;;15580:22;;-1:-1:-1;;;15580:22:97;;;;;;;;;;;15521:92;15701:10;15677:14;15694:18;;;:6;:18;;;;;15722:24;;-1:-1:-1;;;;;;15722:24:97;;;;;;;15756:14;;:29;15773:12;;15756:14;:29;:::i;:::-;-1:-1:-1;15795:7:97;;;:14;;;-1:-1:-1;;15819:37:97;;;;;;;;;;15971:10;-1:-1:-1;15953:29:97;;;:17;:29;;;;;;;;-1:-1:-1;15953:45:97;;;;16008:12;:24;;;;;;:40;;;;16092:7;:33;16080:67;;-1:-1:-1;;;16080:67:97;;;;;6851:74:143;;;;-1:-1:-1;;;;;;;16092:33:97;;;;16080:55;;6824:18:143;;16080:67:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16059:88;;16178:10;-1:-1:-1;;;;;16163:52:97;;16190:12;;16204:10;16163:52;;;;;;;;:::i;:::-;;;;;;;;15322:900;;;15238:984;;;:::o;17719:866::-;17946:15;17915:21;:28;;;:46;17911:109;;;17984:25;;-1:-1:-1;;;17984:25:97;;;;;;;;;;;17911:109;-1:-1:-1;;;;;18033:45:97;;;;;;:24;:45;;;;;;;;18079:26;;;;18033:73;;;;;;;;;;18029:145;;;18129:34;;-1:-1:-1;;;18129:34:97;;;;;;;;;;;18029:145;18183:40;18226:142;18281:19;18302:21;:26;;;18330:21;:28;;;18226:41;:142::i;:::-;18183:185;;18378:110;18401:19;18422:32;18456:21;:31;;;18378:22;:110::i;:::-;-1:-1:-1;;;;;;18498:45:97;;;;;;;:24;:45;;;;;;;;18544:26;;;;18498:73;;;;;;:80;;-1:-1:-1;;18498:80:97;18574:4;18498:80;;;17719:866::o;3926:66::-;1355:13:51;:11;:13::i;2841:944:54:-;839:66;3257:59;;;3253:526;;;3332:37;3351:17;3332:18;:37::i;3253:526::-;3433:17;-1:-1:-1;;;;;3404:61:54;;:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3404:63:54;;;;;;;;-1:-1:-1;;3404:63:54;;;;;;;;;;;;:::i;:::-;;;3400:302;;3631:56;;-1:-1:-1;;;3631:56:54;;22883:2:143;3631:56:54;;;22865:21:143;22922:2;22902:18;;;22895:30;22961:34;22941:18;;;22934:62;-1:-1:-1;;;23012:18:143;;;23005:44;23066:19;;3631:56:54;22681:410:143;3400:302:54;-1:-1:-1;;;;;;;;;;;3517:28:54;;3509:82;;;;-1:-1:-1;;;3509:82:54;;23298:2:143;3509:82:54;;;23280:21:143;23337:2;23317:18;;;23310:30;23376:34;23356:18;;;23349:62;-1:-1:-1;;;23427:18:143;;;23420:39;23476:19;;3509:82:54;23096:405:143;3509:82:54;3468:138;3715:53;3733:17;3752:4;3758:9;3715:17;:53::i;941:175:75:-;1050:58;;;-1:-1:-1;;;;;13473:55:143;;1050:58:75;;;13455:74:143;13545:18;;;;13538:34;;;1050:58:75;;;;;;;;;;13428:18:143;;;;1050:58:75;;;;;;;;-1:-1:-1;;;;;1050:58:75;-1:-1:-1;;;1050:58:75;;;1023:86;;1043:5;;1023:19;:86::i;2687:187:51:-;2779:6;;;-1:-1:-1;;;;;2795:17:51;;;-1:-1:-1;;;;;;2795:17:51;;;;;;;2827:40;;2779:6;;;2795:17;2779:6;;2827:40;;2760:16;;2827:40;2750:124;2687:187;:::o;16880:833:97:-;-1:-1:-1;;;;;16989:21:97;;;16969:17;16989:21;;;:6;:21;;;;;17025:14;;16989:21;;17025:14;:31;17021:88;;17079:19;;-1:-1:-1;;;17079:19:97;;;;;;;;;;;17021:88;17131:7;:33;17119:71;;-1:-1:-1;;;17119:71:97;;-1:-1:-1;;;;;6869:55:143;;;17119:71:97;;;6851:74:143;17131:33:97;;;;17119:56;;6824:18:143;;17119:71:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17201:40;17213:13;17228:12;17201:11;:40::i;:::-;-1:-1:-1;;;;;17282:36:97;;;17252:27;17282:36;;;:21;:36;;;;;;17333:21;;;;17282:36;;;17333:21;;17329:339;;;17386:37;;17370:94;;-1:-1:-1;;;17370:94:97;;-1:-1:-1;;;;;6869:55:143;;;17370:94:97;;;6851:74:143;17386:37:97;;;;17370:73;;6824:18:143;;17370:94:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17329:339;;;17565:30;;17625:31;;17552:105;;-1:-1:-1;;;17552:105:97;;-1:-1:-1;;;;;13473:55:143;;;17552:105:97;;;13455:74:143;13545:18;;;13538:34;;;;17565:30:97;;;17552:51;;13428:18:143;;17552:105:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17329:339;17683:23;;-1:-1:-1;;;;;17683:23:97;;;;;;;;16959:754;;16880:833;;:::o;16228:646::-;-1:-1:-1;;;;;16364:21:97;;16394:5;16364:21;;;:6;:21;;;;;:27;;;:35;;-1:-1:-1;;16364:35:97;;;16553:39;;;16433:12;;16553:54;-1:-1:-1;16549:319:97;;;-1:-1:-1;;;;;16623:21:97;;;;;;:6;:21;;;;;:39;;:55;;16666:12;;16623:21;:55;;16666:12;;16623:55;:::i;:::-;;;;-1:-1:-1;16549:319:97;;-1:-1:-1;16549:319:97;;16830:27;16845:12;16830;:27;:::i;:::-;-1:-1:-1;;;;;16788:21:97;;;;;;:6;:21;;;;;:39;;:69;16303:571;16228:646;;:::o;1024:95:51:-;5374:13:56;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:56;;;;;;;:::i;:::-;1086:26:51::1;:24;:26::i;18974:812:97:-:0;-1:-1:-1;;;;;1713:19:58;;;:23;19410:370:97;;19460:56;;-1:-1:-1;;;19460:56:97;;;19520:19;-1:-1:-1;;;;;19460:33:97;;;1724:10;;19460:56;;19494:10;;19506:9;;19460:56;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;19460:79:97;;19456:161;;19566:36;;-1:-1:-1;;;19566:36:97;;;;;;;;;;;19410:370;19691:6;-1:-1:-1;;;;;19651:46:97;:36;19665:10;19677:9;19651:13;:36::i;:::-;-1:-1:-1;;;;;19651:46:97;;19647:123;;19724:31;;-1:-1:-1;;;19724:31:97;;;;;;;;;;;1720:281:54;-1:-1:-1;;;;;1713:19:58;;;1793:106:54;;;;-1:-1:-1;;;1793:106:54;;24708:2:143;1793:106:54;;;24690:21:143;24747:2;24727:18;;;24720:30;24786:34;24766:18;;;24759:62;-1:-1:-1;;;24837:18:143;;;24830:43;24890:19;;1793:106:54;24506:409:143;1793:106:54;-1:-1:-1;;;;;;;;;;;1909:85:54;;-1:-1:-1;;;;;;1909:85:54;-1:-1:-1;;;;;1909:85:54;;;;;;;;;;1720:281::o;2393:276::-;2501:29;2512:17;2501:10;:29::i;:::-;2558:1;2544:4;:11;:15;:28;;;;2563:9;2544:28;2540:123;;;2588:64;2628:17;2647:4;2588:39;:64::i;5196:642:75:-;5615:23;5641:69;5669:4;5641:69;;;;;;;;;;;;;;;;;5649:5;-1:-1:-1;;;;;5641:27:75;;;:69;;;;;:::i;:::-;5615:95;;5728:10;:17;5749:1;5728:22;:56;;;;5765:10;5754:30;;;;;;;;;;;;:::i;:::-;5720:111;;;;-1:-1:-1;;;5720:111:75;;25122:2:143;5720:111:75;;;25104:21:143;25161:2;25141:18;;;25134:30;25200:34;25180:18;;;25173:62;-1:-1:-1;;;25251:18:143;;;25244:40;25301:19;;5720:111:75;24920:406:143;1125:111:51;5374:13:56;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:56;;;;;;;:::i;:::-;1197:32:51::1;965:10:59::0;1197:18:51::1;:32::i;3661:227:80:-:0;3739:7;3759:17;3778:18;3800:27;3811:4;3817:9;3800:10;:27::i;:::-;3758:69;;;;3837:18;3849:5;3837:11;:18::i;:::-;-1:-1:-1;3872:9:80;3661:227;-1:-1:-1;;;3661:227:80:o;2107:152:54:-;2173:37;2192:17;2173:18;:37::i;:::-;2225:27;;-1:-1:-1;;;;;2225:27:54;;;;;;;;2107:152;:::o;6685:198:58:-;6768:12;6799:77;6820:6;6828:4;6799:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6792:84;6685:198;-1:-1:-1;;;6685:198:58:o;4108:223:76:-;4241:12;4272:52;4294:6;4302:4;4308:1;4311:12;4272:21;:52::i;:::-;4265:59;4108:223;-1:-1:-1;;;;4108:223:76:o;2145:730:80:-;2226:7;2235:12;2263:9;:16;2283:2;2263:22;2259:610;;2599:4;2584:20;;2578:27;2648:4;2633:20;;2627:27;2705:4;2690:20;;2684:27;2301:9;2676:36;2746:25;2757:4;2676:36;2578:27;2627;2746:10;:25::i;:::-;2739:32;;;;;;;;;2259:610;-1:-1:-1;2818:1:80;;-1:-1:-1;2822:35:80;2259:610;2145:730;;;;;:::o;570:511::-;647:20;638:5;:29;;;;;;;;:::i;:::-;;634:441;;570:511;:::o;634:441::-;743:29;734:5;:38;;;;;;;;:::i;:::-;;730:345;;788:34;;-1:-1:-1;;;788:34:80;;25665:2:143;788:34:80;;;25647:21:143;25704:2;25684:18;;;25677:30;25743:26;25723:18;;;25716:54;25787:18;;788:34:80;25463:348:143;730:345:80;852:35;843:5;:44;;;;;;;;:::i;:::-;;839:236;;903:41;;-1:-1:-1;;;903:41:80;;26018:2:143;903:41:80;;;26000:21:143;26057:2;26037:18;;;26030:30;26096:33;26076:18;;;26069:61;26147:18;;903:41:80;25816:355:143;839:236:80;974:30;965:5;:39;;;;;;;;:::i;:::-;;961:114;;1020:44;;-1:-1:-1;;;1020:44:80;;26378:2:143;1020:44:80;;;26360:21:143;26417:2;26397:18;;;26390:30;26456:34;26436:18;;;26429:62;-1:-1:-1;;;26507:18:143;;;26500:32;26549:19;;1020:44:80;26176:398:143;7069:325:58;7210:12;7235;7249:23;7276:6;-1:-1:-1;;;;;7276:19:58;7296:4;7276:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7234:67;;;;7318:69;7345:6;7353:7;7362:10;7374:12;7318:26;:69::i;:::-;7311:76;7069:325;-1:-1:-1;;;;;;7069:325:58:o;5165:446:76:-;5330:12;5387:5;5362:21;:30;;5354:81;;;;-1:-1:-1;;;5354:81:76;;27073:2:143;5354:81:76;;;27055:21:143;27112:2;27092:18;;;27085:30;27151:34;27131:18;;;27124:62;-1:-1:-1;;;27202:18:143;;;27195:36;27248:19;;5354:81:76;26871:402:143;5354:81:76;5446:12;5460:23;5487:6;-1:-1:-1;;;;;5487:11:76;5506:5;5513:4;5487:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5445:73;;;;5535:69;5562:6;5570:7;5579:10;5591:12;5535:26;:69::i;:::-;5528:76;5165:446;-1:-1:-1;;;;;;;5165:446:76:o;5009:1456:80:-;5097:7;;6021:66;6008:79;;6004:161;;;-1:-1:-1;6119:1:80;;-1:-1:-1;6123:30:80;6103:51;;6004:161;6276:24;;;6259:14;6276:24;;;;;;;;;27505:25:143;;;27578:4;27566:17;;27546:18;;;27539:45;;;;27600:18;;;27593:34;;;27643:18;;;27636:34;;;6276:24:80;;27477:19:143;;6276:24:80;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6276:24:80;;-1:-1:-1;;6276:24:80;;;-1:-1:-1;;;;;;;6314:20:80;;6310:101;;6366:1;6370:29;6350:50;;;;;;;6310:101;6429:6;-1:-1:-1;6437:20:80;;-1:-1:-1;5009:1456:80;;;;;;;;:::o;7682:628:58:-;7862:12;7890:7;7886:418;;;7917:10;:17;7938:1;7917:22;7913:286;;-1:-1:-1;;;;;1713:19:58;;;8124:60;;;;-1:-1:-1;;;8124:60:58;;27883:2:143;8124:60:58;;;27865:21:143;27922:2;27902:18;;;27895:30;27961:31;27941:18;;;27934:59;28010:18;;8124:60:58;27681:353:143;8124:60:58;-1:-1:-1;8219:10:58;8212:17;;7886:418;8260:33;8268:10;8280:12;8991:17;;:21;8987:379;;9219:10;9213:17;9275:15;9262:10;9258:2;9254:19;9247:44;8987:379;9342:12;9335:20;;-1:-1:-1;;;9335:20:58;;;;;;;;:::i;14:367:143:-;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:143;;225:18;214:30;;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:773;508:6;516;524;532;585:2;573:9;564:7;560:23;556:32;553:52;;;601:1;598;591:12;553:52;641:9;628:23;670:18;711:2;703:6;700:14;697:34;;;727:1;724;717:12;697:34;766:70;828:7;819:6;808:9;804:22;766:70;:::i;:::-;855:8;;-1:-1:-1;740:96:143;-1:-1:-1;943:2:143;928:18;;915:32;;-1:-1:-1;959:16:143;;;956:36;;;988:1;985;978:12;956:36;;1027:72;1091:7;1080:8;1069:9;1065:24;1027:72;:::i;:::-;386:773;;;;-1:-1:-1;1118:8:143;-1:-1:-1;;;;386:773:143:o;1164:196::-;1232:20;;-1:-1:-1;;;;;1281:54:143;;1271:65;;1261:93;;1350:1;1347;1340:12;1261:93;1164:196;;;:::o;1365:186::-;1424:6;1477:2;1465:9;1456:7;1452:23;1448:32;1445:52;;;1493:1;1490;1483:12;1445:52;1516:29;1535:9;1516:29;:::i;1556:250::-;1641:1;1651:113;1665:6;1662:1;1659:13;1651:113;;;1741:11;;;1735:18;1722:11;;;1715:39;1687:2;1680:10;1651:113;;;-1:-1:-1;;1798:1:143;1780:16;;1773:27;1556:250::o;1811:270::-;1852:3;1890:5;1884:12;1917:6;1912:3;1905:19;1933:76;2002:6;1995:4;1990:3;1986:14;1979:4;1972:5;1968:16;1933:76;:::i;:::-;2063:2;2042:15;-1:-1:-1;;2038:29:143;2029:39;;;;2070:4;2025:50;;1811:270;-1:-1:-1;;1811:270:143:o;2086:217::-;2233:2;2222:9;2215:21;2196:4;2253:44;2293:2;2282:9;2278:18;2270:6;2253:44;:::i;2743:347::-;2794:8;2804:6;2858:3;2851:4;2843:6;2839:17;2835:27;2825:55;;2876:1;2873;2866:12;2825:55;-1:-1:-1;2899:20:143;;2942:18;2931:30;;2928:50;;;2974:1;2971;2964:12;2928:50;3011:4;3003:6;2999:17;2987:29;;3063:3;3056:4;3047:6;3039;3035:19;3031:30;3028:39;3025:59;;;3080:1;3077;3070:12;3095:118;3181:5;3174:13;3167:21;3160:5;3157:32;3147:60;;3203:1;3200;3193:12;3218:127;3279:10;3274:3;3270:20;3267:1;3260:31;3310:4;3307:1;3300:15;3334:4;3331:1;3324:15;3350:275;3421:2;3415:9;3486:2;3467:13;;-1:-1:-1;;3463:27:143;3451:40;;3521:18;3506:34;;3542:22;;;3503:62;3500:88;;;3568:18;;:::i;:::-;3604:2;3597:22;3350:275;;-1:-1:-1;3350:275:143:o;3630:530::-;3672:5;3725:3;3718:4;3710:6;3706:17;3702:27;3692:55;;3743:1;3740;3733:12;3692:55;3779:6;3766:20;3805:18;3801:2;3798:26;3795:52;;;3827:18;;:::i;:::-;3871:55;3914:2;3895:13;;-1:-1:-1;;3891:27:143;3920:4;3887:38;3871:55;:::i;:::-;3951:2;3942:7;3935:19;3997:3;3990:4;3985:2;3977:6;3973:15;3969:26;3966:35;3963:55;;;4014:1;4011;4004:12;3963:55;4079:2;4072:4;4064:6;4060:17;4053:4;4044:7;4040:18;4027:55;4127:1;4102:16;;;4120:4;4098:27;4091:38;;;;4106:7;3630:530;-1:-1:-1;;;3630:530:143:o;4165:689::-;4238:5;4286:4;4274:9;4269:3;4265:19;4261:30;4258:50;;;4304:1;4301;4294:12;4258:50;4337:2;4331:9;4379:4;4371:6;4367:17;4403:18;4471:6;4459:10;4456:22;4451:2;4439:10;4436:18;4433:46;4430:72;;;4482:18;;:::i;:::-;4522:10;4518:2;4511:22;4551:6;4542:15;;4593:9;4580:23;4566:37;;4626:2;4618:6;4615:14;4612:34;;;4642:1;4639;4632:12;4612:34;;4670:45;4711:3;4702:6;4691:9;4687:22;4670:45;:::i;:::-;4662:6;4655:61;;4777:2;4766:9;4762:18;4749:32;4744:2;4736:6;4732:15;4725:57;4843:2;4832:9;4828:18;4815:32;4810:2;4802:6;4798:15;4791:57;;4165:689;;;;:::o;4859:896::-;4998:6;5006;5014;5022;5030;5083:3;5071:9;5062:7;5058:23;5054:33;5051:53;;;5100:1;5097;5090:12;5051:53;5140:9;5127:23;5169:18;5210:2;5202:6;5199:14;5196:34;;;5226:1;5223;5216:12;5196:34;5265:58;5315:7;5306:6;5295:9;5291:22;5265:58;:::i;:::-;5342:8;;-1:-1:-1;5239:84:143;-1:-1:-1;5427:2:143;5412:18;;5399:32;;-1:-1:-1;5440:28:143;5399:32;5440:28;:::i;:::-;5487:5;5477:15;;5511:38;5545:2;5534:9;5530:18;5511:38;:::i;:::-;5501:48;;5602:2;5591:9;5587:18;5574:32;5558:48;;5631:2;5621:8;5618:16;5615:36;;;5647:1;5644;5637:12;5615:36;;5670:79;5741:7;5730:8;5719:9;5715:24;5670:79;:::i;:::-;5660:89;;;4859:896;;;;;;;;:::o;5760:541::-;5864:6;5872;5880;5888;5896;5904;5957:3;5945:9;5936:7;5932:23;5928:33;5925:53;;;5974:1;5971;5964:12;5925:53;5997:29;6016:9;5997:29;:::i;:::-;5987:39;;6045:38;6079:2;6068:9;6064:18;6045:38;:::i;:::-;6035:48;;6102:38;6136:2;6125:9;6121:18;6102:38;:::i;:::-;6092:48;;6187:2;6176:9;6172:18;6159:32;6149:42;;6238:3;6227:9;6223:19;6210:33;6200:43;;6290:3;6279:9;6275:19;6262:33;6252:43;;5760:541;;;;;;;;:::o;6306:394::-;6383:6;6391;6444:2;6432:9;6423:7;6419:23;6415:32;6412:52;;;6460:1;6457;6450:12;6412:52;6483:29;6502:9;6483:29;:::i;:::-;6473:39;;6563:2;6552:9;6548:18;6535:32;6590:18;6582:6;6579:30;6576:50;;;6622:1;6619;6612:12;6576:50;6645:49;6686:7;6677:6;6666:9;6662:22;6645:49;:::i;:::-;6635:59;;;6306:394;;;;;:::o;6936:384::-;7040:6;7093:2;7081:9;7072:7;7068:23;7064:32;7061:52;;;7109:1;7106;7099:12;7061:52;7149:9;7136:23;7182:18;7174:6;7171:30;7168:50;;;7214:1;7211;7204:12;7168:50;7237:77;7306:7;7297:6;7286:9;7282:22;7237:77;:::i;7325:322::-;7402:6;7410;7418;7471:2;7459:9;7450:7;7446:23;7442:32;7439:52;;;7487:1;7484;7477:12;7439:52;7510:29;7529:9;7510:29;:::i;:::-;7500:39;7586:2;7571:18;;7558:32;;-1:-1:-1;7637:2:143;7622:18;;;7609:32;;7325:322;-1:-1:-1;;;7325:322:143:o;7652:1090::-;7754:6;7762;7770;7823:2;7811:9;7802:7;7798:23;7794:32;7791:52;;;7839:1;7836;7829:12;7791:52;7879:9;7866:23;7908:18;7949:2;7941:6;7938:14;7935:34;;;7965:1;7962;7955:12;7935:34;8003:6;7992:9;7988:22;7978:32;;8048:7;8041:4;8037:2;8033:13;8029:27;8019:55;;8070:1;8067;8060:12;8019:55;8106:2;8093:16;8128:4;8151:2;8147;8144:10;8141:36;;;8157:18;;:::i;:::-;8203:2;8200:1;8196:10;8186:20;;8226:28;8250:2;8246;8242:11;8226:28;:::i;:::-;8288:15;;;8358:11;;;8354:20;;;8319:12;;;;8386:19;;;8383:39;;;8418:1;8415;8408:12;8383:39;8442:11;;;;8462:148;8478:6;8473:3;8470:15;8462:148;;;8544:23;8563:3;8544:23;:::i;:::-;8532:36;;8495:12;;;;8588;;;;8462:148;;;8629:5;8666:18;;;8653:32;;-1:-1:-1;;8732:2:143;8717:18;;;8704:32;;7652:1090;-1:-1:-1;;;;;;7652:1090:143:o;8747:685::-;8922:2;8911:9;8904:21;-1:-1:-1;;;;;8971:6:143;8965:13;8961:62;8956:2;8945:9;8941:18;8934:90;8885:4;9071:2;9063:6;9059:15;9053:22;9111:4;9106:2;9095:9;9091:18;9084:32;9139:51;9185:3;9174:9;9170:19;9156:12;9139:51;:::i;:::-;9125:65;;9258:2;9250:6;9246:15;9240:22;9233:30;9226:38;9221:2;9210:9;9206:18;9199:66;9334:2;9326:6;9322:15;9316:22;9309:30;9302:38;9296:3;9285:9;9281:19;9274:67;9397:3;9389:6;9385:16;9379:23;9372:4;9361:9;9357:20;9350:53;9420:6;9412:14;;;8747:685;;;;:::o;9764:254::-;9832:6;9840;9893:2;9881:9;9872:7;9868:23;9864:32;9861:52;;;9909:1;9906;9899:12;9861:52;9932:29;9951:9;9932:29;:::i;:::-;9922:39;10008:2;9993:18;;;;9980:32;;-1:-1:-1;;;9764:254:143:o;10474:409::-;10544:6;10552;10605:2;10593:9;10584:7;10580:23;10576:32;10573:52;;;10621:1;10618;10611:12;10573:52;10661:9;10648:23;10694:18;10686:6;10683:30;10680:50;;;10726:1;10723;10716:12;10680:50;10765:58;10815:7;10806:6;10795:9;10791:22;10765:58;:::i;:::-;10842:8;;10739:84;;-1:-1:-1;10474:409:143;-1:-1:-1;;;;10474:409:143:o;11516:127::-;11577:10;11572:3;11568:20;11565:1;11558:31;11608:4;11605:1;11598:15;11632:4;11629:1;11622:15;11648:127;11709:10;11704:3;11700:20;11697:1;11690:31;11740:4;11737:1;11730:15;11764:4;11761:1;11754:15;11780:135;11819:3;11840:17;;;11837:43;;11860:18;;:::i;:::-;-1:-1:-1;11907:1:143;11896:13;;11780:135::o;11920:380::-;11999:1;11995:12;;;;12042;;;12063:61;;12117:4;12109:6;12105:17;12095:27;;12063:61;12170:2;12162:6;12159:14;12139:18;12136:38;12133:161;;12216:10;12211:3;12207:20;12204:1;12197:31;12251:4;12248:1;12241:15;12279:4;12276:1;12269:15;12133:161;;11920:380;;;:::o;12305:128::-;12372:9;;;12393:11;;;12390:37;;;12407:18;;:::i;12438:184::-;12508:6;12561:2;12549:9;12540:7;12536:23;12532:32;12529:52;;;12577:1;12574;12567:12;12529:52;-1:-1:-1;12600:16:143;;12438:184;-1:-1:-1;12438:184:143:o;12627:649::-;-1:-1:-1;;;;;12878:6:143;12874:55;12863:9;12856:74;12966:2;12961;12950:9;12946:18;12939:30;12837:4;13004:6;12998:13;13047:4;13042:2;13031:9;13027:18;13020:32;13075:51;13121:3;13110:9;13106:19;13092:12;13075:51;:::i;:::-;13061:65;;13182:2;13174:6;13170:15;13164:22;13157:4;13146:9;13142:20;13135:52;13242:2;13234:6;13230:15;13224:22;13218:3;13207:9;13203:19;13196:51;13264:6;13256:14;;;12627:649;;;;;:::o;13583:408::-;13785:2;13767:21;;;13824:2;13804:18;;;13797:30;13863:34;13858:2;13843:18;;13836:62;-1:-1:-1;;;13929:2:143;13914:18;;13907:42;13981:3;13966:19;;13583:408::o;13996:::-;14198:2;14180:21;;;14237:2;14217:18;;;14210:30;14276:34;14271:2;14256:18;;14249:62;-1:-1:-1;;;14342:2:143;14327:18;;14320:42;14394:3;14379:19;;13996:408::o;15016:125::-;15081:9;;;15102:10;;;15099:36;;;15115:18;;:::i;16602:266::-;16690:6;16685:3;16678:19;16742:6;16735:5;16728:4;16723:3;16719:14;16706:43;-1:-1:-1;16794:1:143;16769:16;;;16787:4;16765:27;;;16758:38;;;;16850:2;16829:15;;;-1:-1:-1;;16825:29:143;16816:39;;;16812:50;;16602:266::o;16873:252::-;17038:2;17027:9;17020:21;17001:4;17058:61;17115:2;17104:9;17100:18;17092:6;17084;17058:61;:::i;17130:765::-;17223:6;17276:3;17264:9;17255:7;17251:23;17247:33;17244:53;;;17293:1;17290;17283:12;17244:53;17342:7;17335:4;17324:9;17320:20;17316:34;17306:62;;17364:1;17361;17354:12;17306:62;17397:2;17391:9;17439:3;17431:6;17427:16;17509:6;17497:10;17494:22;17473:18;17461:10;17458:34;17455:62;17452:88;;;17520:18;;:::i;:::-;17556:2;17549:22;17591:6;17635:3;17620:19;;17651;;;17648:39;;;17683:1;17680;17673:12;17648:39;17707:9;17725:139;17741:6;17736:3;17733:15;17725:139;;;17809:10;;17797:23;;17849:4;17840:14;;;;17758;17725:139;;;-1:-1:-1;17883:6:143;;17130:765;-1:-1:-1;;;;;17130:765:143:o;17900:503::-;18088:3;18073:19;;18077:9;18169:6;18046:4;18203:194;18217:4;18214:1;18211:11;18203:194;;;18276:13;;18264:26;;18313:4;18337:12;;;;18372:15;;;;18237:1;18230:9;18203:194;;;18207:3;;;17900:503;;;;:::o;18408:245::-;18475:6;18528:2;18516:9;18507:7;18503:23;18499:32;18496:52;;;18544:1;18541;18534:12;18496:52;18576:9;18570:16;18595:28;18617:5;18595:28;:::i;18783:544::-;18884:2;18879:3;18876:11;18873:448;;;18920:1;18945:5;18941:2;18934:17;18990:4;18986:2;18976:19;19060:2;19048:10;19044:19;19041:1;19037:27;19031:4;19027:38;19096:4;19084:10;19081:20;19078:47;;;-1:-1:-1;19119:4:143;19078:47;19174:2;19169:3;19165:12;19162:1;19158:20;19152:4;19148:31;19138:41;;19229:82;19247:2;19240:5;19237:13;19229:82;;;19292:17;;;19273:1;19262:13;19229:82;;;19233:3;;;18783:544;;;:::o;19503:1202::-;19625:18;19620:3;19617:27;19614:53;;;19647:18;;:::i;:::-;19676:93;19765:3;19725:38;19757:4;19751:11;19725:38;:::i;:::-;19719:4;19676:93;:::i;:::-;19795:1;19820:2;19815:3;19812:11;19837:1;19832:615;;;;20491:1;20508:3;20505:93;;;-1:-1:-1;20564:19:143;;;20551:33;20505:93;-1:-1:-1;;19460:1:143;19456:11;;;19452:24;19448:29;19438:40;19484:1;19480:11;;;19435:57;20611:78;;19805:894;;19832:615;18730:1;18723:14;;;18767:4;18754:18;;-1:-1:-1;;19868:17:143;;;19968:9;19990:229;20004:7;20001:1;19998:14;19990:229;;;20093:19;;;20080:33;20065:49;;20200:4;20185:20;;;;20153:1;20141:14;;;;20020:12;19990:229;;;19994:3;20247;20238:7;20235:16;20232:159;;;20371:1;20367:6;20361:3;20355;20352:1;20348:11;20344:21;20340:34;20336:39;20323:9;20318:3;20314:19;20301:33;20297:79;20289:6;20282:95;20232:159;;;20434:1;20428:3;20425:1;20421:11;20417:19;20411:4;20404:33;19805:894;;19503:1202;;;:::o;22172:315::-;22357:2;22346:9;22339:21;22320:4;22377:61;22434:2;22423:9;22419:18;22411:6;22403;22377:61;:::i;:::-;22369:69;;22474:6;22469:2;22458:9;22454:18;22447:34;22172:315;;;;;;:::o;23506:407::-;23708:2;23690:21;;;23747:2;23727:18;;;23720:30;23786:34;23781:2;23766:18;;23759:62;-1:-1:-1;;;23852:2:143;23837:18;;23830:41;23903:3;23888:19;;23506:407::o;23918:288::-;24093:6;24082:9;24075:25;24136:2;24131;24120:9;24116:18;24109:30;24056:4;24156:44;24196:2;24185:9;24181:18;24173:6;24156:44;:::i;24211:290::-;24280:6;24333:2;24321:9;24312:7;24308:23;24304:32;24301:52;;;24349:1;24346;24339:12;24301:52;24375:16;;-1:-1:-1;;;;;;24420:32:143;;24410:43;;24400:71;;24467:1;24464;24457:12;25331:127;25392:10;25387:3;25383:20;25380:1;25373:31;25423:4;25420:1;25413:15;25447:4;25444:1;25437:15;26579:287;26708:3;26746:6;26740:13;26762:66;26821:6;26816:3;26809:4;26801:6;26797:17;26762:66;:::i;:::-;26844:16;;;;;26579:287;-1:-1:-1;;26579:287:143:o","linkReferences":{"src/libraries/BLS.sol":{"BLS":[{"start":6729,"length":20},{"start":6854,"length":20},{"start":7510,"length":20},{"start":7635,"length":20}]}},"immutableReferences":{"53306":[{"start":3098,"length":32},{"start":3171,"length":32},{"start":3623,"length":32},{"start":3687,"length":32},{"start":3834,"length":32}]}},"methodIdentifiers":{"DOMAIN_TYPEHASH()":"20606b70","NATIVE_NODE_REGISTRATION_TYPEHASH()":"b447f451","addReward(address[],uint256,uint256)":"914eb34d","assetAccountSaltIsSpent(address,bytes32)":"c71e3c78","calculateNativeNodeRegistrationDigestHash(address,bytes32,uint256)":"a2cd23e6","changeDkgPublicKey(bytes)":"e275cde6","dismissNode(address,uint256)":"add60b4c","domainSeparator()":"f698da25","getAssetAccountAddressByNodeAddress(address)":"6cc7fb5d","getDKGPublicKey(address)":"15dac9b2","getNode(address)":"9d209048","getNodeAddressByAssetAccountAddress(address)":"d20cc152","getNodeRegistryConfig()":"e40e744b","getNodeWithdrawableTokens(address)":"227d0f46","initialize(address)":"c4d66de8","nodeActivate((bytes,bytes32,uint256))":"8d2f3e6b","nodeQuit()":"7a2af56e","nodeRegister(bytes,bool,address,(bytes,bytes32,uint256))":"30d640b2","nodeWithdraw(address)":"4ecea80d","owner()":"8da5cb5b","proxiableUUID()":"52d1902d","renounceOwnership()":"715018a6","setAssetAccount(address[],address[])":"081342ba","setNodeRegistryConfig(address,address,address,uint256,uint256,uint256)":"33f010a1","slashNode(address,uint256,uint256)":"8ed47008","transferOwnership(address)":"f2fde38b","upgradeTo(address)":"3659cfe6","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"EIP1271SignatureExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EIP1271SignatureNotFromSigner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EIP1271SignatureSaltAlreadySpent\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EIP1271SignatureVerificationFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPublicKey\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeAlreadyActive\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeAlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeNotRegistered\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"pendingUntilBlock\",\"type\":\"uint256\"}],\"name\":\"NodeStillPending\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorUnderStaking\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SenderNotController\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"assetAccountAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"}],\"name\":\"AssetAccountSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"dkgPublicKey\",\"type\":\"bytes\"}],\"name\":\"DkgPublicKeyChanged\",\"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\":\"nodeAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"groupIndex\",\"type\":\"uint256\"}],\"name\":\"NodeActivated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"}],\"name\":\"NodeQuit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"dkgPublicKey\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"groupIndex\",\"type\":\"uint256\"}],\"name\":\"NodeRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ethAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"arpaAmount\",\"type\":\"uint256\"}],\"name\":\"NodeRewarded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"nodeIdAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"stakingRewardPenalty\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"pendingBlock\",\"type\":\"uint256\"}],\"name\":\"NodeSlashed\",\"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\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NATIVE_NODE_REGISTRATION_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"nodes\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"ethAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"arpaAmount\",\"type\":\"uint256\"}],\"name\":\"addReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"assetAccountAddress\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"name\":\"assetAccountSaltIsSpent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"assetAccountAddress\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"name\":\"calculateNativeNodeRegistrationDigestHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"dkgPublicKey\",\"type\":\"bytes\"}],\"name\":\"changeDkgPublicKey\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"nodeIdAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"pendingBlock\",\"type\":\"uint256\"}],\"name\":\"dismissNode\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"domainSeparator\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"}],\"name\":\"getAssetAccountAddressByNodeAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"}],\"name\":\"getDKGPublicKey\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"}],\"name\":\"getNode\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"idAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"dkgPublicKey\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"isEigenlayerNode\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"state\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"pendingUntilBlock\",\"type\":\"uint256\"}],\"internalType\":\"struct INodeRegistry.Node\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"assetAccountAddress\",\"type\":\"address\"}],\"name\":\"getNodeAddressByAssetAccountAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNodeRegistryConfig\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"controllerContractAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stakingContractAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"serviceManagerContractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nativeNodeStakingAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"eigenlayerNodeStakingAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"pendingBlockAfterQuit\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"}],\"name\":\"getNodeWithdrawableTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"arpa\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"internalType\":\"struct ISignatureUtils.SignatureWithSaltAndExpiry\",\"name\":\"assetAccountSignature\",\"type\":\"tuple\"}],\"name\":\"nodeActivate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nodeQuit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"dkgPublicKey\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"isEigenlayerNode\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"assetAccountAddress\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"internalType\":\"struct ISignatureUtils.SignatureWithSaltAndExpiry\",\"name\":\"assetAccountSignature\",\"type\":\"tuple\"}],\"name\":\"nodeRegister\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"nodeWithdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"assetAccountAddresses\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"nodeAddresses\",\"type\":\"address[]\"}],\"name\":\"setAssetAccount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"controllerContractAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stakingContractAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"serviceManagerContractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nativeNodeStakingAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"eigenlayerNodeStakingAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"pendingBlockAfterQuit\",\"type\":\"uint256\"}],\"name\":\"setNodeRegistryConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"nodeIdAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"stakingRewardPenalty\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"pendingBlock\",\"type\":\"uint256\"}],\"name\":\"slashNode\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"calculateNativeNodeRegistrationDigestHash(address,bytes32,uint256)\":{\"params\":{\"assetAccountAddress\":\"The asset account address of the staking node\",\"expiry\":\"Time after which the approver's signature becomes invalid\",\"salt\":\"A unique and single use value associated with the approver signature.\"}},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"dismissNode(address,uint256)\":{\"params\":{\"nodeIdAddress\":\"The address of the node\",\"pendingBlock\":\"The number of blocks the node must wait before activating again\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setAssetAccount(address[],address[])\":{\"params\":{\"assetAccountAddresses\":\"The addresses of the asset accounts\",\"nodeAddresses\":\"The addresses of the nodes\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"upgradeTo(address)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"DOMAIN_TYPEHASH()\":{\"notice\":\"The EIP-712 typehash for the contract's domain\"},\"NATIVE_NODE_REGISTRATION_TYPEHASH()\":{\"notice\":\"The EIP-712 typehash for the `Registration` struct used by the contract\"},\"calculateNativeNodeRegistrationDigestHash(address,bytes32,uint256)\":{\"notice\":\"Calculates the digest hash to be signed as a native node\"},\"dismissNode(address,uint256)\":{\"notice\":\"Dismiss a node from the registry forcefully\"},\"domainSeparator()\":{\"notice\":\"Getter function for the current EIP-712 domain separator for this contract.\"},\"setAssetAccount(address[],address[])\":{\"notice\":\"Set the asset account of the node\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/NodeRegistry.sol\":\"NodeRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":300},\"remappings\":[\":Randcast-User-Contract/=lib/Randcast-User-Contract/contracts/\",\":Staking-v0.1/=lib/Staking-v0.1/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":fx-portal/=lib/fx-portal/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/Staking-v0.1/src/interfaces/INodeStaking.sol\":{\"keccak256\":\"0x61fc4eedf6e2a273668363fca439f533fed249e6de11b79ff2bd26b6ff975963\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e26dfe1e161b7bbe8f679a7629b9240925d0aca42f035f930c2e4eb01c9e164c\",\"dweb:/ipfs/QmTpM3TdfFVN8D6YdodfMwLwbEPXeG1oV38NKTt7qM99C8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x359a1ab89b46b9aba7bcad3fb651924baf4893d15153049b9976b0fc9be1358e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e89863421b4014b96a4b62be76eb3b9f0a8afe9684664a6f389124c0964bfe5c\",\"dweb:/ipfs/Qmbk7xr1irpDuU1WdxXgxELBXxs61rHhCgod7heVcvFx16\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol\":{\"keccak256\":\"0x47d6e06872b12e72c79d1b5eb55842f860b5fb1207b2317c2358d2766b950a7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac55bf6f92fc7b90c6d79d346163a0a02bd5c648c7fede08b20e5da96d4ae2a0\",\"dweb:/ipfs/QmQoSrHhka35iKDK5iyNt8cuXXS5ANXVPjLhfsJjktB8V9\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol\":{\"keccak256\":\"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053\",\"dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol\":{\"keccak256\":\"0x7795808e3899c805254e3ae58074b20f799b466e3f43e057e47bedee5fb771f8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://319853a2a682f3f72411507242669ef5e76e0ad3457be53102439709ee8948f0\",\"dweb:/ipfs/QmRtm4Ese9u4jfxXyuWPXLwzenwFotuQjAWV7rXtZTB1E9\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol\":{\"keccak256\":\"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1\",\"dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xefb41f5c1a00249b7a99f0782f8c557865605426a3fb6e5fe9ae334293ae4f33\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90def55e5782595aabc13f57780c02d3613e5226f20ce6c1709503a63fdeb58f\",\"dweb:/ipfs/Qmb5vcymmNEZUJMaHmYxnhvGJDEsGMae4YjcHwkA74jy99\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol\":{\"keccak256\":\"0x07ac95acad040f1fb1f6120dd0aa5f702db69446e95f82613721879d30de0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9df9de7b5da1d1bd3d4b6c073d0174bc4211db60e794a321c8cb5d4eae34685\",\"dweb:/ipfs/QmWe49zj65jayrCe9jZpoWhYUZ1RiwSxyU2s7SBZnMztVy\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e\",\"dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71\",\"dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68\",\"dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x809bc3edb4bcbef8263fa616c1b60ee0004b50a8a1bfa164d8f57fd31f520c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b93a1e39a4a19eba1600b92c96f435442db88cac91e315c8291547a2a7bcfe2\",\"dweb:/ipfs/QmTm34KVe6uZBZwq8dZDNWwPcm24qBJdxqL3rPxBJ4LrMv\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"src/NodeRegistry.sol\":{\"keccak256\":\"0xbca84056bae4cd9f53abcbbe7adee858f430f64e6d83969ff4f74d8efdc9510b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a5f83ab794fdd13cb565a0c8e57c95b4536a15d46578aa2792fd8c0d67081eb\",\"dweb:/ipfs/QmXyyyq53BSoLLpQa49ypyArAnKoCcp66yeEKJZp58m9GB\"]},\"src/interfaces/IController.sol\":{\"keccak256\":\"0x948f60df177a67c7d2ee01f4f2ff7c8c8ac9133ff6c6a66932475f40d72191d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b91f7a0060bc3b597788f283d98bf03a6480e5a19823d8490655a637e28b2b4a\",\"dweb:/ipfs/QmfVbB9Nbc6PckFpGuoY7WNFYoetiYKTSURMuKHQTHRzmN\"]},\"src/interfaces/INodeRegistry.sol\":{\"keccak256\":\"0x24fe73f4ebd0484f42217398f1790e91d804e6f53db2f19cc9db12d6a8e73aa5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://79a845e2132fe11e7a37b9b3f2309a6dd2d608847eaf135e4eda9fd9b832247e\",\"dweb:/ipfs/QmNtFLJSTxaVKXWHFcxAZ2AzWrmrQtXMZsH29ErFNg95QW\"]},\"src/interfaces/INodeRegistryOwner.sol\":{\"keccak256\":\"0xa086cbb4e50ca4bf5fdbb0f9662320804820ea7d5d5ea6789d5208a76fa7df98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ed45ca06583f73344b845c5145a68d3ae03cd0644589fd8828a0e45f1fb02a9\",\"dweb:/ipfs/QmXKcs3avzDNKqkWWY6f62R9pEUa6FxXy1mnhkyjMWRsh6\"]},\"src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x0a42c4e8e619ed0cac6f6f4caedd7bff147843ce600f06cf67ce3924aefc678f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://e05247df0369b2d636e5e507985f6e7f7d4e870cdbf476ef16a15781aa047e20\",\"dweb:/ipfs/Qmb6cDpfQURNEwTjYCHqvdwi3UwPYWaiQbBFUjDSQheGXA\"]},\"src/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0xdd987d72d8cdbe1839ffa554c35f5e0b65cad95954044b5528a2f2d565188b26\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://60aeff57e190ce78fbdba148b49fedcbd59576645d91d4d995eaebad95b40388\",\"dweb:/ipfs/QmTSCht7dHR2bjjpuaP7efGbixFUr38NcxxHCih2bzyaSK\"]},\"src/libraries/BLS.sol\":{\"keccak256\":\"0x963cd923ec46eab814aec7ab47d02d4565625132482d0dc5db6424b6e795fbdf\",\"license\":\"LGPL 3.0\",\"urls\":[\"bzz-raw://75330a1732e52f73002115b1bf70232a3b5bddeb528562f77ea0a7484538f1f3\",\"dweb:/ipfs/QmPZKvA2eccQBCSL533UvthZDiybM89VRY29yBuLvKe4kP\"]},\"src/libraries/BN256G2.sol\":{\"keccak256\":\"0x7f86978b2856456f588d13dd0f2a1fa8116810427877742fb39c48ba248efd02\",\"license\":\"LGPL 3.0\",\"urls\":[\"bzz-raw://c223787ec2297ee90add7f1ec0ce19ba224231cb7faa0e935d7e61b3fca9f4f8\",\"dweb:/ipfs/QmUDApHuPsYXoxYr7gGezY1mUR9ZXQ1cPSUhuWuDwrH4bA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.18+commit.87f61d96"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"EIP1271SignatureExpired"},{"inputs":[],"type":"error","name":"EIP1271SignatureNotFromSigner"},{"inputs":[],"type":"error","name":"EIP1271SignatureSaltAlreadySpent"},{"inputs":[],"type":"error","name":"EIP1271SignatureVerificationFailed"},{"inputs":[],"type":"error","name":"InvalidArrayLength"},{"inputs":[],"type":"error","name":"InvalidPublicKey"},{"inputs":[],"type":"error","name":"InvalidZeroAddress"},{"inputs":[],"type":"error","name":"NodeAlreadyActive"},{"inputs":[],"type":"error","name":"NodeAlreadyRegistered"},{"inputs":[],"type":"error","name":"NodeNotRegistered"},{"inputs":[{"internalType":"uint256","name":"pendingUntilBlock","type":"uint256"}],"type":"error","name":"NodeStillPending"},{"inputs":[],"type":"error","name":"OperatorUnderStaking"},{"inputs":[],"type":"error","name":"SenderNotController"},{"inputs":[{"internalType":"address","name":"previousAdmin","type":"address","indexed":false},{"internalType":"address","name":"newAdmin","type":"address","indexed":false}],"type":"event","name":"AdminChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"assetAccountAddress","type":"address","indexed":true},{"internalType":"address","name":"nodeAddress","type":"address","indexed":true}],"type":"event","name":"AssetAccountSet","anonymous":false},{"inputs":[{"internalType":"address","name":"beacon","type":"address","indexed":true}],"type":"event","name":"BeaconUpgraded","anonymous":false},{"inputs":[{"internalType":"address","name":"nodeAddress","type":"address","indexed":true},{"internalType":"bytes","name":"dkgPublicKey","type":"bytes","indexed":false}],"type":"event","name":"DkgPublicKeyChanged","anonymous":false},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"nodeAddress","type":"address","indexed":true},{"internalType":"uint256","name":"groupIndex","type":"uint256","indexed":false}],"type":"event","name":"NodeActivated","anonymous":false},{"inputs":[{"internalType":"address","name":"nodeAddress","type":"address","indexed":true}],"type":"event","name":"NodeQuit","anonymous":false},{"inputs":[{"internalType":"address","name":"nodeAddress","type":"address","indexed":true},{"internalType":"bytes","name":"dkgPublicKey","type":"bytes","indexed":false},{"internalType":"uint256","name":"groupIndex","type":"uint256","indexed":false}],"type":"event","name":"NodeRegistered","anonymous":false},{"inputs":[{"internalType":"address","name":"nodeAddress","type":"address","indexed":true},{"internalType":"uint256","name":"ethAmount","type":"uint256","indexed":false},{"internalType":"uint256","name":"arpaAmount","type":"uint256","indexed":false}],"type":"event","name":"NodeRewarded","anonymous":false},{"inputs":[{"internalType":"address","name":"nodeIdAddress","type":"address","indexed":true},{"internalType":"uint256","name":"stakingRewardPenalty","type":"uint256","indexed":false},{"internalType":"uint256","name":"pendingBlock","type":"uint256","indexed":false}],"type":"event","name":"NodeSlashed","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":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NATIVE_NODE_REGISTRATION_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address[]","name":"nodes","type":"address[]"},{"internalType":"uint256","name":"ethAmount","type":"uint256"},{"internalType":"uint256","name":"arpaAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"addReward"},{"inputs":[{"internalType":"address","name":"assetAccountAddress","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"stateMutability":"view","type":"function","name":"assetAccountSaltIsSpent","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"assetAccountAddress","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256","name":"expiry","type":"uint256"}],"stateMutability":"view","type":"function","name":"calculateNativeNodeRegistrationDigestHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes","name":"dkgPublicKey","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"changeDkgPublicKey"},{"inputs":[{"internalType":"address","name":"nodeIdAddress","type":"address"},{"internalType":"uint256","name":"pendingBlock","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"dismissNode"},{"inputs":[],"stateMutability":"view","type":"function","name":"domainSeparator","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"nodeAddress","type":"address"}],"stateMutability":"view","type":"function","name":"getAssetAccountAddressByNodeAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"nodeAddress","type":"address"}],"stateMutability":"view","type":"function","name":"getDKGPublicKey","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"nodeAddress","type":"address"}],"stateMutability":"view","type":"function","name":"getNode","outputs":[{"internalType":"struct INodeRegistry.Node","name":"","type":"tuple","components":[{"internalType":"address","name":"idAddress","type":"address"},{"internalType":"bytes","name":"dkgPublicKey","type":"bytes"},{"internalType":"bool","name":"isEigenlayerNode","type":"bool"},{"internalType":"bool","name":"state","type":"bool"},{"internalType":"uint256","name":"pendingUntilBlock","type":"uint256"}]}]},{"inputs":[{"internalType":"address","name":"assetAccountAddress","type":"address"}],"stateMutability":"view","type":"function","name":"getNodeAddressByAssetAccountAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getNodeRegistryConfig","outputs":[{"internalType":"address","name":"controllerContractAddress","type":"address"},{"internalType":"address","name":"stakingContractAddress","type":"address"},{"internalType":"address","name":"serviceManagerContractAddress","type":"address"},{"internalType":"uint256","name":"nativeNodeStakingAmount","type":"uint256"},{"internalType":"uint256","name":"eigenlayerNodeStakingAmount","type":"uint256"},{"internalType":"uint256","name":"pendingBlockAfterQuit","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"nodeAddress","type":"address"}],"stateMutability":"view","type":"function","name":"getNodeWithdrawableTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"arpa","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"struct ISignatureUtils.SignatureWithSaltAndExpiry","name":"assetAccountSignature","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":"nodeActivate"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"nodeQuit"},{"inputs":[{"internalType":"bytes","name":"dkgPublicKey","type":"bytes"},{"internalType":"bool","name":"isEigenlayerNode","type":"bool"},{"internalType":"address","name":"assetAccountAddress","type":"address"},{"internalType":"struct ISignatureUtils.SignatureWithSaltAndExpiry","name":"assetAccountSignature","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":"nodeRegister"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"nodeWithdraw"},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address[]","name":"assetAccountAddresses","type":"address[]"},{"internalType":"address[]","name":"nodeAddresses","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"setAssetAccount"},{"inputs":[{"internalType":"address","name":"controllerContractAddress","type":"address"},{"internalType":"address","name":"stakingContractAddress","type":"address"},{"internalType":"address","name":"serviceManagerContractAddress","type":"address"},{"internalType":"uint256","name":"nativeNodeStakingAmount","type":"uint256"},{"internalType":"uint256","name":"eigenlayerNodeStakingAmount","type":"uint256"},{"internalType":"uint256","name":"pendingBlockAfterQuit","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setNodeRegistryConfig"},{"inputs":[{"internalType":"address","name":"nodeIdAddress","type":"address"},{"internalType":"uint256","name":"stakingRewardPenalty","type":"uint256"},{"internalType":"uint256","name":"pendingBlock","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"slashNode"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"upgradeTo"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"devdoc":{"kind":"dev","methods":{"calculateNativeNodeRegistrationDigestHash(address,bytes32,uint256)":{"params":{"assetAccountAddress":"The asset account address of the staking node","expiry":"Time after which the approver's signature becomes invalid","salt":"A unique and single use value associated with the approver signature."}},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"dismissNode(address,uint256)":{"params":{"nodeIdAddress":"The address of the node","pendingBlock":"The number of blocks the node must wait before activating again"}},"owner()":{"details":"Returns the address of the current owner."},"proxiableUUID()":{"details":"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setAssetAccount(address[],address[])":{"params":{"assetAccountAddresses":"The addresses of the asset accounts","nodeAddresses":"The addresses of the nodes"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"upgradeTo(address)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"DOMAIN_TYPEHASH()":{"notice":"The EIP-712 typehash for the contract's domain"},"NATIVE_NODE_REGISTRATION_TYPEHASH()":{"notice":"The EIP-712 typehash for the `Registration` struct used by the contract"},"calculateNativeNodeRegistrationDigestHash(address,bytes32,uint256)":{"notice":"Calculates the digest hash to be signed as a native node"},"dismissNode(address,uint256)":{"notice":"Dismiss a node from the registry forcefully"},"domainSeparator()":{"notice":"Getter function for the current EIP-712 domain separator for this contract."},"setAssetAccount(address[],address[])":{"notice":"Set the asset account of the node"}},"version":1}},"settings":{"remappings":["Randcast-User-Contract/=lib/Randcast-User-Contract/contracts/","Staking-v0.1/=lib/Staking-v0.1/src/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","fx-portal/=lib/fx-portal/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":300},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/NodeRegistry.sol":"NodeRegistry"},"libraries":{}},"sources":{"lib/Staking-v0.1/src/interfaces/INodeStaking.sol":{"keccak256":"0x61fc4eedf6e2a273668363fca439f533fed249e6de11b79ff2bd26b6ff975963","urls":["bzz-raw://e26dfe1e161b7bbe8f679a7629b9240925d0aca42f035f930c2e4eb01c9e164c","dweb:/ipfs/QmTpM3TdfFVN8D6YdodfMwLwbEPXeG1oV38NKTt7qM99C8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x359a1ab89b46b9aba7bcad3fb651924baf4893d15153049b9976b0fc9be1358e","urls":["bzz-raw://e89863421b4014b96a4b62be76eb3b9f0a8afe9684664a6f389124c0964bfe5c","dweb:/ipfs/Qmbk7xr1irpDuU1WdxXgxELBXxs61rHhCgod7heVcvFx16"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol":{"keccak256":"0x47d6e06872b12e72c79d1b5eb55842f860b5fb1207b2317c2358d2766b950a7b","urls":["bzz-raw://ac55bf6f92fc7b90c6d79d346163a0a02bd5c648c7fede08b20e5da96d4ae2a0","dweb:/ipfs/QmQoSrHhka35iKDK5iyNt8cuXXS5ANXVPjLhfsJjktB8V9"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol":{"keccak256":"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f","urls":["bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053","dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol":{"keccak256":"0x7795808e3899c805254e3ae58074b20f799b466e3f43e057e47bedee5fb771f8","urls":["bzz-raw://319853a2a682f3f72411507242669ef5e76e0ad3457be53102439709ee8948f0","dweb:/ipfs/QmRtm4Ese9u4jfxXyuWPXLwzenwFotuQjAWV7rXtZTB1E9"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol":{"keccak256":"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908","urls":["bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1","dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xefb41f5c1a00249b7a99f0782f8c557865605426a3fb6e5fe9ae334293ae4f33","urls":["bzz-raw://90def55e5782595aabc13f57780c02d3613e5226f20ce6c1709503a63fdeb58f","dweb:/ipfs/Qmb5vcymmNEZUJMaHmYxnhvGJDEsGMae4YjcHwkA74jy99"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef","urls":["bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95","dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol":{"keccak256":"0x07ac95acad040f1fb1f6120dd0aa5f702db69446e95f82613721879d30de0908","urls":["bzz-raw://a9df9de7b5da1d1bd3d4b6c073d0174bc4211db60e794a321c8cb5d4eae34685","dweb:/ipfs/QmWe49zj65jayrCe9jZpoWhYUZ1RiwSxyU2s7SBZnMztVy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544","urls":["bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e","dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69","urls":["bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71","dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1","urls":["bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68","dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0","urls":["bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f","dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x809bc3edb4bcbef8263fa616c1b60ee0004b50a8a1bfa164d8f57fd31f520c58","urls":["bzz-raw://8b93a1e39a4a19eba1600b92c96f435442db88cac91e315c8291547a2a7bcfe2","dweb:/ipfs/QmTm34KVe6uZBZwq8dZDNWwPcm24qBJdxqL3rPxBJ4LrMv"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3","urls":["bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c","dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc","urls":["bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7","dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6"],"license":"MIT"},"src/NodeRegistry.sol":{"keccak256":"0xbca84056bae4cd9f53abcbbe7adee858f430f64e6d83969ff4f74d8efdc9510b","urls":["bzz-raw://3a5f83ab794fdd13cb565a0c8e57c95b4536a15d46578aa2792fd8c0d67081eb","dweb:/ipfs/QmXyyyq53BSoLLpQa49ypyArAnKoCcp66yeEKJZp58m9GB"],"license":"MIT"},"src/interfaces/IController.sol":{"keccak256":"0x948f60df177a67c7d2ee01f4f2ff7c8c8ac9133ff6c6a66932475f40d72191d4","urls":["bzz-raw://b91f7a0060bc3b597788f283d98bf03a6480e5a19823d8490655a637e28b2b4a","dweb:/ipfs/QmfVbB9Nbc6PckFpGuoY7WNFYoetiYKTSURMuKHQTHRzmN"],"license":"MIT"},"src/interfaces/INodeRegistry.sol":{"keccak256":"0x24fe73f4ebd0484f42217398f1790e91d804e6f53db2f19cc9db12d6a8e73aa5","urls":["bzz-raw://79a845e2132fe11e7a37b9b3f2309a6dd2d608847eaf135e4eda9fd9b832247e","dweb:/ipfs/QmNtFLJSTxaVKXWHFcxAZ2AzWrmrQtXMZsH29ErFNg95QW"],"license":"MIT"},"src/interfaces/INodeRegistryOwner.sol":{"keccak256":"0xa086cbb4e50ca4bf5fdbb0f9662320804820ea7d5d5ea6789d5208a76fa7df98","urls":["bzz-raw://2ed45ca06583f73344b845c5145a68d3ae03cd0644589fd8828a0e45f1fb02a9","dweb:/ipfs/QmXKcs3avzDNKqkWWY6f62R9pEUa6FxXy1mnhkyjMWRsh6"],"license":"MIT"},"src/interfaces/IServiceManager.sol":{"keccak256":"0x0a42c4e8e619ed0cac6f6f4caedd7bff147843ce600f06cf67ce3924aefc678f","urls":["bzz-raw://e05247df0369b2d636e5e507985f6e7f7d4e870cdbf476ef16a15781aa047e20","dweb:/ipfs/Qmb6cDpfQURNEwTjYCHqvdwi3UwPYWaiQbBFUjDSQheGXA"],"license":"BUSL-1.1"},"src/interfaces/ISignatureUtils.sol":{"keccak256":"0xdd987d72d8cdbe1839ffa554c35f5e0b65cad95954044b5528a2f2d565188b26","urls":["bzz-raw://60aeff57e190ce78fbdba148b49fedcbd59576645d91d4d995eaebad95b40388","dweb:/ipfs/QmTSCht7dHR2bjjpuaP7efGbixFUr38NcxxHCih2bzyaSK"],"license":"BUSL-1.1"},"src/libraries/BLS.sol":{"keccak256":"0x963cd923ec46eab814aec7ab47d02d4565625132482d0dc5db6424b6e795fbdf","urls":["bzz-raw://75330a1732e52f73002115b1bf70232a3b5bddeb528562f77ea0a7484538f1f3","dweb:/ipfs/QmPZKvA2eccQBCSL533UvthZDiybM89VRY29yBuLvKe4kP"],"license":"LGPL 3.0"},"src/libraries/BN256G2.sol":{"keccak256":"0x7f86978b2856456f588d13dd0f2a1fa8116810427877742fb39c48ba248efd02","urls":["bzz-raw://c223787ec2297ee90add7f1ec0ce19ba224231cb7faa0e935d7e61b3fca9f4f8","dweb:/ipfs/QmUDApHuPsYXoxYr7gGezY1mUR9ZXQ1cPSUhuWuDwrH4bA"],"license":"LGPL 3.0"}},"version":1},"ast":{"absolutePath":"src/NodeRegistry.sol","id":68255,"exportedSymbols":{"Address":[56018],"BLS":[70758],"ECDSA":[56753],"IController":[69524],"IERC1271":[54041],"IERC20":[55251],"INodeRegistry":[69908],"INodeRegistryOwner":[69950],"INodeStaking":[6590],"IServiceManager":[70053],"ISignatureUtils":[70069],"NodeRegistry":[68254],"OwnableUpgradeable":[52751],"SafeERC20":[55688],"UUPSUpgradeable":[53423]},"nodeType":"SourceUnit","src":"32:19757:97","nodes":[{"id":66850,"nodeType":"PragmaDirective","src":"32:24:97","nodes":[],"literals":["solidity","^","0.8",".18"]},{"id":66853,"nodeType":"ImportDirective","src":"58:99:97","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","file":"openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","nameLocation":"-1:-1:-1","scope":68255,"sourceUnit":55689,"symbolAliases":[{"foreign":{"id":66851,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55251,"src":"66:6:97","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":66852,"name":"SafeERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55688,"src":"74:9:97","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":66855,"nodeType":"ImportDirective","src":"158:109:97","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol","file":"openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":68255,"sourceUnit":53424,"symbolAliases":[{"foreign":{"id":66854,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53423,"src":"166:15:97","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":66857,"nodeType":"ImportDirective","src":"268:110:97","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":68255,"sourceUnit":52752,"symbolAliases":[{"foreign":{"id":66856,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52751,"src":"276:18:97","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":66860,"nodeType":"ImportDirective","src":"379:78:97","nodes":[],"absolutePath":"src/interfaces/INodeRegistry.sol","file":"./interfaces/INodeRegistry.sol","nameLocation":"-1:-1:-1","scope":68255,"sourceUnit":69909,"symbolAliases":[{"foreign":{"id":66858,"name":"INodeRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69908,"src":"387:13:97","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":66859,"name":"ISignatureUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70069,"src":"402:15:97","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":66862,"nodeType":"ImportDirective","src":"458:71:97","nodes":[],"absolutePath":"src/interfaces/INodeRegistryOwner.sol","file":"./interfaces/INodeRegistryOwner.sol","nameLocation":"-1:-1:-1","scope":68255,"sourceUnit":69951,"symbolAliases":[{"foreign":{"id":66861,"name":"INodeRegistryOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69950,"src":"466:18:97","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":66864,"nodeType":"ImportDirective","src":"530:57:97","nodes":[],"absolutePath":"src/interfaces/IController.sol","file":"./interfaces/IController.sol","nameLocation":"-1:-1:-1","scope":68255,"sourceUnit":69525,"symbolAliases":[{"foreign":{"id":66863,"name":"IController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69524,"src":"538:11:97","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":66866,"nodeType":"ImportDirective","src":"588:70:97","nodes":[],"absolutePath":"lib/Staking-v0.1/src/interfaces/INodeStaking.sol","file":"Staking-v0.1/interfaces/INodeStaking.sol","nameLocation":"-1:-1:-1","scope":68255,"sourceUnit":6591,"symbolAliases":[{"foreign":{"id":66865,"name":"INodeStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6590,"src":"596:12:97","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":66868,"nodeType":"ImportDirective","src":"659:65:97","nodes":[],"absolutePath":"src/interfaces/IServiceManager.sol","file":"./interfaces/IServiceManager.sol","nameLocation":"-1:-1:-1","scope":68255,"sourceUnit":70054,"symbolAliases":[{"foreign":{"id":66867,"name":"IServiceManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70053,"src":"667:15:97","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":66870,"nodeType":"ImportDirective","src":"725:40:97","nodes":[],"absolutePath":"src/libraries/BLS.sol","file":"./libraries/BLS.sol","nameLocation":"-1:-1:-1","scope":68255,"sourceUnit":70759,"symbolAliases":[{"foreign":{"id":66869,"name":"BLS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70758,"src":"733:3:97","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":66872,"nodeType":"ImportDirective","src":"766:82:97","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol","file":"openzeppelin-contracts/contracts/interfaces/IERC1271.sol","nameLocation":"-1:-1:-1","scope":68255,"sourceUnit":54042,"symbolAliases":[{"foreign":{"id":66871,"name":"IERC1271","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54041,"src":"774:8:97","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":66874,"nodeType":"ImportDirective","src":"849:75:97","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":68255,"sourceUnit":56019,"symbolAliases":[{"foreign":{"id":66873,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56018,"src":"857:7:97","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":66876,"nodeType":"ImportDirective","src":"925:84:97","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol","file":"openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol","nameLocation":"-1:-1:-1","scope":68255,"sourceUnit":56754,"symbolAliases":[{"foreign":{"id":66875,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56753,"src":"933:5:97","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":68254,"nodeType":"ContractDefinition","src":"1011:18777:97","nodes":[{"id":66888,"nodeType":"UsingForDirective","src":"1113:27:97","nodes":[],"global":false,"libraryName":{"id":66885,"name":"SafeERC20","nameLocations":["1119:9:97"],"nodeType":"IdentifierPath","referencedDeclaration":55688,"src":"1119:9:97"},"typeName":{"id":66887,"nodeType":"UserDefinedTypeName","pathNode":{"id":66886,"name":"IERC20","nameLocations":["1133:6:97"],"nodeType":"IdentifierPath","referencedDeclaration":55251,"src":"1133:6:97"},"referencedDeclaration":55251,"src":"1133:6:97","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$55251","typeString":"contract IERC20"}}},{"id":66894,"nodeType":"VariableDeclaration","src":"1228:130:97","nodes":[],"constant":true,"documentation":{"id":66889,"nodeType":"StructuredDocumentation","src":"1165:58:97","text":"@notice The EIP-712 typehash for the contract's domain"},"functionSelector":"20606b70","mutability":"constant","name":"DOMAIN_TYPEHASH","nameLocation":"1252:15:97","scope":68254,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":66890,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1228:7:97","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"454950373132446f6d61696e28737472696e67206e616d652c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429","id":66892,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1288:69:97","typeDescriptions":{"typeIdentifier":"t_stringliteral_8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866","typeString":"literal_string \"EIP712Domain(string name,uint256 chainId,address verifyingContract)\""},"value":"EIP712Domain(string name,uint256 chainId,address verifyingContract)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866","typeString":"literal_string \"EIP712Domain(string name,uint256 chainId,address verifyingContract)\""}],"id":66891,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1278:9:97","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":66893,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1278:80:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":66900,"nodeType":"VariableDeclaration","src":"1452:160:97","nodes":[],"constant":true,"documentation":{"id":66895,"nodeType":"StructuredDocumentation","src":"1364:83:97","text":"@notice The EIP-712 typehash for the `Registration` struct used by the contract"},"functionSelector":"b447f451","mutability":"constant","name":"NATIVE_NODE_REGISTRATION_TYPEHASH","nameLocation":"1476:33:97","scope":68254,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":66896,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1452:7:97","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"4e61746976654e6f6465526567697374726174696f6e28616464726573732061737365744163636f756e74416464726573732c627974657333322073616c742c75696e743235362065787069727929","id":66898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1530:81:97","typeDescriptions":{"typeIdentifier":"t_stringliteral_cc09e0f5a503fec4c1d9af748841a9210c73d71fc183762f71c57b2c6977f136","typeString":"literal_string \"NativeNodeRegistration(address assetAccountAddress,bytes32 salt,uint256 expiry)\""},"value":"NativeNodeRegistration(address assetAccountAddress,bytes32 salt,uint256 expiry)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cc09e0f5a503fec4c1d9af748841a9210c73d71fc183762f71c57b2c6977f136","typeString":"literal_string \"NativeNodeRegistration(address assetAccountAddress,bytes32 salt,uint256 expiry)\""}],"id":66897,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1520:9:97","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":66899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1520:92:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":66903,"nodeType":"VariableDeclaration","src":"1677:57:97","nodes":[],"constant":true,"mutability":"constant","name":"_EIP1271_MAGICVALUE","nameLocation":"1702:19:97","scope":68254,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":66901,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1677:6:97","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":{"hexValue":"30783136323662613765","id":66902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1724:10:97","typeDescriptions":{"typeIdentifier":"t_rational_371636862_by_1","typeString":"int_const 371636862"},"value":"0x1626ba7e"},"visibility":"internal"},{"id":66906,"nodeType":"VariableDeclaration","src":"1740:41:97","nodes":[],"constant":true,"mutability":"constant","name":"_BALANCE_BASE","nameLocation":"1764:13:97","scope":68254,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":66904,"name":"uint16","nodeType":"ElementaryTypeName","src":"1740:6:97","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"31","id":66905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1780:1:97","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"private"},{"id":66909,"nodeType":"VariableDeclaration","src":"1817:34:97","nodes":[],"constant":false,"mutability":"mutable","name":"_config","nameLocation":"1844:7:97","scope":68254,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_NodeRegistryConfig_$69779_storage","typeString":"struct INodeRegistry.NodeRegistryConfig"},"typeName":{"id":66908,"nodeType":"UserDefinedTypeName","pathNode":{"id":66907,"name":"NodeRegistryConfig","nameLocations":["1817:18:97"],"nodeType":"IdentifierPath","referencedDeclaration":69779,"src":"1817:18:97"},"referencedDeclaration":69779,"src":"1817:18:97","typeDescriptions":{"typeIdentifier":"t_struct$_NodeRegistryConfig_$69779_storage_ptr","typeString":"struct INodeRegistry.NodeRegistryConfig"}},"visibility":"private"},{"id":66912,"nodeType":"VariableDeclaration","src":"1857:20:97","nodes":[],"constant":false,"mutability":"mutable","name":"_arpa","nameLocation":"1872:5:97","scope":68254,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$55251","typeString":"contract IERC20"},"typeName":{"id":66911,"nodeType":"UserDefinedTypeName","pathNode":{"id":66910,"name":"IERC20","nameLocations":["1857:6:97"],"nodeType":"IdentifierPath","referencedDeclaration":55251,"src":"1857:6:97"},"referencedDeclaration":55251,"src":"1857:6:97","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$55251","typeString":"contract IERC20"}},"visibility":"private"},{"id":66917,"nodeType":"VariableDeclaration","src":"1914:39:97","nodes":[],"constant":false,"mutability":"mutable","name":"_nodes","nameLocation":"1947:6:97","scope":68254,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Node_$69766_storage_$","typeString":"mapping(address => struct INodeRegistry.Node)"},"typeName":{"id":66916,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":66913,"name":"address","nodeType":"ElementaryTypeName","src":"1922:7:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1914:24:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Node_$69766_storage_$","typeString":"mapping(address => struct INodeRegistry.Node)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":66915,"nodeType":"UserDefinedTypeName","pathNode":{"id":66914,"name":"Node","nameLocations":["1933:4:97"],"nodeType":"IdentifierPath","referencedDeclaration":69766,"src":"1933:4:97"},"referencedDeclaration":69766,"src":"1933:4:97","typeDescriptions":{"typeIdentifier":"t_struct$_Node_$69766_storage_ptr","typeString":"struct INodeRegistry.Node"}}},"visibility":"private"},{"id":66921,"nodeType":"VariableDeclaration","src":"1995:53:97","nodes":[],"constant":false,"mutability":"mutable","name":"_withdrawableEths","nameLocation":"2031:17:97","scope":68254,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":66920,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":66918,"name":"address","nodeType":"ElementaryTypeName","src":"2003:7:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1995:27:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":66919,"name":"uint256","nodeType":"ElementaryTypeName","src":"2014:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"id":66925,"nodeType":"VariableDeclaration","src":"2102:48:97","nodes":[],"constant":false,"mutability":"mutable","name":"_arpaRewards","nameLocation":"2138:12:97","scope":68254,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":66924,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":66922,"name":"address","nodeType":"ElementaryTypeName","src":"2110:7:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2102:27:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":66923,"name":"uint256","nodeType":"ElementaryTypeName","src":"2121:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"id":66929,"nodeType":"VariableDeclaration","src":"2193:57:97","nodes":[],"constant":false,"mutability":"mutable","name":"_assetAccountsToNodes","nameLocation":"2229:21:97","scope":68254,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"typeName":{"id":66928,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":66926,"name":"address","nodeType":"ElementaryTypeName","src":"2201:7:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2193:27:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":66927,"name":"address","nodeType":"ElementaryTypeName","src":"2212:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"id":66933,"nodeType":"VariableDeclaration","src":"2302:57:97","nodes":[],"constant":false,"mutability":"mutable","name":"_nodesToAssetAccounts","nameLocation":"2338:21:97","scope":68254,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"typeName":{"id":66932,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":66930,"name":"address","nodeType":"ElementaryTypeName","src":"2310:7:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2302:27:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":66931,"name":"address","nodeType":"ElementaryTypeName","src":"2321:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"id":66939,"nodeType":"VariableDeclaration","src":"2411:77:97","nodes":[],"constant":false,"mutability":"mutable","name":"_assetAccountSaltIsSpent","nameLocation":"2464:24:97","scope":68254,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bool_$_$","typeString":"mapping(address => mapping(bytes32 => bool))"},"typeName":{"id":66938,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":66934,"name":"address","nodeType":"ElementaryTypeName","src":"2419:7:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2411:44:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bool_$_$","typeString":"mapping(address => mapping(bytes32 => bool))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":66937,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":66935,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2438:7:97","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2430:24:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":66936,"name":"bool","nodeType":"ElementaryTypeName","src":"2449:4:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}}},"visibility":"private"},{"id":66947,"nodeType":"EventDefinition","src":"2549:90:97","nodes":[],"anonymous":false,"eventSelector":"d4ec586f4f9f417f99e20fe821fbaa10a10a4b95f8712a0c57c6d8ed970e98bd","name":"NodeRegistered","nameLocation":"2555:14:97","parameters":{"id":66946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":66941,"indexed":true,"mutability":"mutable","name":"nodeAddress","nameLocation":"2586:11:97","nodeType":"VariableDeclaration","scope":66947,"src":"2570:27:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":66940,"name":"address","nodeType":"ElementaryTypeName","src":"2570:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":66943,"indexed":false,"mutability":"mutable","name":"dkgPublicKey","nameLocation":"2605:12:97","nodeType":"VariableDeclaration","scope":66947,"src":"2599:18:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":66942,"name":"bytes","nodeType":"ElementaryTypeName","src":"2599:5:97","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":66945,"indexed":false,"mutability":"mutable","name":"groupIndex","nameLocation":"2627:10:97","nodeType":"VariableDeclaration","scope":66947,"src":"2619:18:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":66944,"name":"uint256","nodeType":"ElementaryTypeName","src":"2619:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2569:69:97"}},{"id":66953,"nodeType":"EventDefinition","src":"2644:69:97","nodes":[],"anonymous":false,"eventSelector":"fc97cd9154b40031874ef09a9436a4b60052e4dcf40f21b1258be265fac4a397","name":"NodeActivated","nameLocation":"2650:13:97","parameters":{"id":66952,"nodeType":"ParameterList","parameters":[{"constant":false,"id":66949,"indexed":true,"mutability":"mutable","name":"nodeAddress","nameLocation":"2680:11:97","nodeType":"VariableDeclaration","scope":66953,"src":"2664:27:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":66948,"name":"address","nodeType":"ElementaryTypeName","src":"2664:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":66951,"indexed":false,"mutability":"mutable","name":"groupIndex","nameLocation":"2701:10:97","nodeType":"VariableDeclaration","scope":66953,"src":"2693:18:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":66950,"name":"uint256","nodeType":"ElementaryTypeName","src":"2693:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2663:49:97"}},{"id":66957,"nodeType":"EventDefinition","src":"2718:44:97","nodes":[],"anonymous":false,"eventSelector":"68577adbb6b0647e21353ff032be5797d9fa0879ce7e05fe617e40368441f97d","name":"NodeQuit","nameLocation":"2724:8:97","parameters":{"id":66956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":66955,"indexed":true,"mutability":"mutable","name":"nodeAddress","nameLocation":"2749:11:97","nodeType":"VariableDeclaration","scope":66957,"src":"2733:27:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":66954,"name":"address","nodeType":"ElementaryTypeName","src":"2733:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2732:29:97"}},{"id":66963,"nodeType":"EventDefinition","src":"2767:75:97","nodes":[],"anonymous":false,"eventSelector":"4a327ac4843af7a9586b5a2a2c312bd17289ae1d70da32855ed539fe39f86a50","name":"DkgPublicKeyChanged","nameLocation":"2773:19:97","parameters":{"id":66962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":66959,"indexed":true,"mutability":"mutable","name":"nodeAddress","nameLocation":"2809:11:97","nodeType":"VariableDeclaration","scope":66963,"src":"2793:27:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":66958,"name":"address","nodeType":"ElementaryTypeName","src":"2793:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":66961,"indexed":false,"mutability":"mutable","name":"dkgPublicKey","nameLocation":"2828:12:97","nodeType":"VariableDeclaration","scope":66963,"src":"2822:18:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":66960,"name":"bytes","nodeType":"ElementaryTypeName","src":"2822:5:97","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2792:49:97"}},{"id":66971,"nodeType":"EventDefinition","src":"2847:87:97","nodes":[],"anonymous":false,"eventSelector":"8353a804115421789f3ab2eeb3f5215943906ce12100c91d40fc865caf742b6f","name":"NodeRewarded","nameLocation":"2853:12:97","parameters":{"id":66970,"nodeType":"ParameterList","parameters":[{"constant":false,"id":66965,"indexed":true,"mutability":"mutable","name":"nodeAddress","nameLocation":"2882:11:97","nodeType":"VariableDeclaration","scope":66971,"src":"2866:27:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":66964,"name":"address","nodeType":"ElementaryTypeName","src":"2866:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":66967,"indexed":false,"mutability":"mutable","name":"ethAmount","nameLocation":"2903:9:97","nodeType":"VariableDeclaration","scope":66971,"src":"2895:17:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":66966,"name":"uint256","nodeType":"ElementaryTypeName","src":"2895:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":66969,"indexed":false,"mutability":"mutable","name":"arpaAmount","nameLocation":"2922:10:97","nodeType":"VariableDeclaration","scope":66971,"src":"2914:18:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":66968,"name":"uint256","nodeType":"ElementaryTypeName","src":"2914:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2865:68:97"}},{"id":66979,"nodeType":"EventDefinition","src":"2939:101:97","nodes":[],"anonymous":false,"eventSelector":"a8d720d0a0a2e7c96bf9eb87433901ebb6331356c8f3283b2568de34478703cc","name":"NodeSlashed","nameLocation":"2945:11:97","parameters":{"id":66978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":66973,"indexed":true,"mutability":"mutable","name":"nodeIdAddress","nameLocation":"2973:13:97","nodeType":"VariableDeclaration","scope":66979,"src":"2957:29:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":66972,"name":"address","nodeType":"ElementaryTypeName","src":"2957:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":66975,"indexed":false,"mutability":"mutable","name":"stakingRewardPenalty","nameLocation":"2996:20:97","nodeType":"VariableDeclaration","scope":66979,"src":"2988:28:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":66974,"name":"uint256","nodeType":"ElementaryTypeName","src":"2988:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":66977,"indexed":false,"mutability":"mutable","name":"pendingBlock","nameLocation":"3026:12:97","nodeType":"VariableDeclaration","scope":66979,"src":"3018:20:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":66976,"name":"uint256","nodeType":"ElementaryTypeName","src":"3018:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2956:83:97"}},{"id":66985,"nodeType":"EventDefinition","src":"3045:88:97","nodes":[],"anonymous":false,"eventSelector":"89ca1a6d1ba2dd7a1222041d072dd6d2e7790f80973456811e834bb9cabedbea","name":"AssetAccountSet","nameLocation":"3051:15:97","parameters":{"id":66984,"nodeType":"ParameterList","parameters":[{"constant":false,"id":66981,"indexed":true,"mutability":"mutable","name":"assetAccountAddress","nameLocation":"3083:19:97","nodeType":"VariableDeclaration","scope":66985,"src":"3067:35:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":66980,"name":"address","nodeType":"ElementaryTypeName","src":"3067:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":66983,"indexed":true,"mutability":"mutable","name":"nodeAddress","nameLocation":"3120:11:97","nodeType":"VariableDeclaration","scope":66985,"src":"3104:27:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":66982,"name":"address","nodeType":"ElementaryTypeName","src":"3104:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3066:66:97"}},{"id":66987,"nodeType":"ErrorDefinition","src":"3155:26:97","nodes":[],"errorSelector":"014f5568","name":"NodeNotRegistered","nameLocation":"3161:17:97","parameters":{"id":66986,"nodeType":"ParameterList","parameters":[],"src":"3178:2:97"}},{"id":66989,"nodeType":"ErrorDefinition","src":"3186:30:97","nodes":[],"errorSelector":"1d61a626","name":"NodeAlreadyRegistered","nameLocation":"3192:21:97","parameters":{"id":66988,"nodeType":"ParameterList","parameters":[],"src":"3213:2:97"}},{"id":66991,"nodeType":"ErrorDefinition","src":"3221:26:97","nodes":[],"errorSelector":"9288a2ec","name":"NodeAlreadyActive","nameLocation":"3227:17:97","parameters":{"id":66990,"nodeType":"ParameterList","parameters":[],"src":"3244:2:97"}},{"id":66995,"nodeType":"ErrorDefinition","src":"3252:50:97","nodes":[],"errorSelector":"c6a4b596","name":"NodeStillPending","nameLocation":"3258:16:97","parameters":{"id":66994,"nodeType":"ParameterList","parameters":[{"constant":false,"id":66993,"mutability":"mutable","name":"pendingUntilBlock","nameLocation":"3283:17:97","nodeType":"VariableDeclaration","scope":66995,"src":"3275:25:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":66992,"name":"uint256","nodeType":"ElementaryTypeName","src":"3275:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3274:27:97"}},{"id":66997,"nodeType":"ErrorDefinition","src":"3307:28:97","nodes":[],"errorSelector":"f5caa330","name":"SenderNotController","nameLocation":"3313:19:97","parameters":{"id":66996,"nodeType":"ParameterList","parameters":[],"src":"3332:2:97"}},{"id":66999,"nodeType":"ErrorDefinition","src":"3340:27:97","nodes":[],"errorSelector":"f6b2911f","name":"InvalidZeroAddress","nameLocation":"3346:18:97","parameters":{"id":66998,"nodeType":"ParameterList","parameters":[],"src":"3364:2:97"}},{"id":67001,"nodeType":"ErrorDefinition","src":"3372:29:97","nodes":[],"errorSelector":"d2d5ddc2","name":"OperatorUnderStaking","nameLocation":"3378:20:97","parameters":{"id":67000,"nodeType":"ParameterList","parameters":[],"src":"3398:2:97"}},{"id":67003,"nodeType":"ErrorDefinition","src":"3406:43:97","nodes":[],"errorSelector":"586a69a2","name":"EIP1271SignatureVerificationFailed","nameLocation":"3412:34:97","parameters":{"id":67002,"nodeType":"ParameterList","parameters":[],"src":"3446:2:97"}},{"id":67005,"nodeType":"ErrorDefinition","src":"3454:38:97","nodes":[],"errorSelector":"41298308","name":"EIP1271SignatureNotFromSigner","nameLocation":"3460:29:97","parameters":{"id":67004,"nodeType":"ParameterList","parameters":[],"src":"3489:2:97"}},{"id":67007,"nodeType":"ErrorDefinition","src":"3497:32:97","nodes":[],"errorSelector":"e3c3dba7","name":"EIP1271SignatureExpired","nameLocation":"3503:23:97","parameters":{"id":67006,"nodeType":"ParameterList","parameters":[],"src":"3526:2:97"}},{"id":67009,"nodeType":"ErrorDefinition","src":"3534:41:97","nodes":[],"errorSelector":"a6dd314f","name":"EIP1271SignatureSaltAlreadySpent","nameLocation":"3540:32:97","parameters":{"id":67008,"nodeType":"ParameterList","parameters":[],"src":"3572:2:97"}},{"id":67011,"nodeType":"ErrorDefinition","src":"3580:27:97","nodes":[],"errorSelector":"9d89020a","name":"InvalidArrayLength","nameLocation":"3586:18:97","parameters":{"id":67010,"nodeType":"ParameterList","parameters":[],"src":"3604:2:97"}},{"id":67019,"nodeType":"FunctionDefinition","src":"3666:53:97","nodes":[],"body":{"id":67018,"nodeType":"Block","src":"3680:39:97","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":67015,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53267,"src":"3690:20:97","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":67016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3690:22:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67017,"nodeType":"ExpressionStatement","src":"3690:22:97"}]},"documentation":{"id":67012,"nodeType":"StructuredDocumentation","src":"3613:48:97","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":67013,"nodeType":"ParameterList","parameters":[],"src":"3677:2:97"},"returnParameters":{"id":67014,"nodeType":"ParameterList","parameters":[],"src":"3680:0:97"},"scope":68254,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":67038,"nodeType":"FunctionDefinition","src":"3725:146:97","nodes":[],"body":{"id":67037,"nodeType":"Block","src":"3807:64:97","nodes":[],"statements":[{"expression":{"id":67032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":67028,"name":"_arpa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66912,"src":"3817:5:97","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$55251","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":67030,"name":"arpa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67021,"src":"3832:4:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":67029,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55251,"src":"3825:6:97","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$55251_$","typeString":"type(contract IERC20)"}},"id":67031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3825:12:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$55251","typeString":"contract IERC20"}},"src":"3817:20:97","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$55251","typeString":"contract IERC20"}},"id":67033,"nodeType":"ExpressionStatement","src":"3817:20:97"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":67034,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52646,"src":"3848:14:97","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":67035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3848:16:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67036,"nodeType":"ExpressionStatement","src":"3848:16:97"}]},"baseFunctions":[69931],"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":67026,"kind":"modifierInvocation","modifierName":{"id":67025,"name":"initializer","nameLocations":["3795:11:97"],"nodeType":"IdentifierPath","referencedDeclaration":53188,"src":"3795:11:97"},"nodeType":"ModifierInvocation","src":"3795:11:97"}],"name":"initialize","nameLocation":"3734:10:97","overrides":{"id":67024,"nodeType":"OverrideSpecifier","overrides":[{"id":67023,"name":"INodeRegistryOwner","nameLocations":["3775:18:97"],"nodeType":"IdentifierPath","referencedDeclaration":69950,"src":"3775:18:97"}],"src":"3766:28:97"},"parameters":{"id":67022,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67021,"mutability":"mutable","name":"arpa","nameLocation":"3753:4:97","nodeType":"VariableDeclaration","scope":67038,"src":"3745:12:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67020,"name":"address","nodeType":"ElementaryTypeName","src":"3745:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3744:14:97"},"returnParameters":{"id":67027,"nodeType":"ParameterList","parameters":[],"src":"3807:0:97"},"scope":68254,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":67047,"nodeType":"FunctionDefinition","src":"3926:66:97","nodes":[],"body":{"id":67046,"nodeType":"Block","src":"3990:2:97","nodes":[],"statements":[]},"baseFunctions":[53417],"implemented":true,"kind":"function","modifiers":[{"id":67044,"kind":"modifierInvocation","modifierName":{"id":67043,"name":"onlyOwner","nameLocations":["3980:9:97"],"nodeType":"IdentifierPath","referencedDeclaration":52665,"src":"3980:9:97"},"nodeType":"ModifierInvocation","src":"3980:9:97"}],"name":"_authorizeUpgrade","nameLocation":"3935:17:97","overrides":{"id":67042,"nodeType":"OverrideSpecifier","overrides":[],"src":"3971:8:97"},"parameters":{"id":67041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67040,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":67047,"src":"3953:7:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67039,"name":"address","nodeType":"ElementaryTypeName","src":"3953:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3952:9:97"},"returnParameters":{"id":67045,"nodeType":"ParameterList","parameters":[],"src":"3990:0:97"},"scope":68254,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":67078,"nodeType":"FunctionDefinition","src":"3998:626:97","nodes":[],"body":{"id":67077,"nodeType":"Block","src":"4338:286:97","nodes":[],"statements":[{"expression":{"id":67075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":67066,"name":"_config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66909,"src":"4348:7:97","typeDescriptions":{"typeIdentifier":"t_struct$_NodeRegistryConfig_$69779_storage","typeString":"struct INodeRegistry.NodeRegistryConfig storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":67068,"name":"controllerContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67049,"src":"4390:25:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":67069,"name":"stakingContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67051,"src":"4429:22:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":67070,"name":"serviceManagerContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67053,"src":"4465:29:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":67071,"name":"nativeNodeStakingAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67055,"src":"4508:23:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":67072,"name":"eigenlayerNodeStakingAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67057,"src":"4545:27:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":67073,"name":"pendingBlockAfterQuit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67059,"src":"4586:21:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":67067,"name":"NodeRegistryConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69779,"src":"4358:18:97","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_NodeRegistryConfig_$69779_storage_ptr_$","typeString":"type(struct INodeRegistry.NodeRegistryConfig storage pointer)"}},"id":67074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4358:259:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_NodeRegistryConfig_$69779_memory_ptr","typeString":"struct INodeRegistry.NodeRegistryConfig memory"}},"src":"4348:269:97","typeDescriptions":{"typeIdentifier":"t_struct$_NodeRegistryConfig_$69779_storage","typeString":"struct INodeRegistry.NodeRegistryConfig storage ref"}},"id":67076,"nodeType":"ExpressionStatement","src":"4348:269:97"}]},"baseFunctions":[69926],"functionSelector":"33f010a1","implemented":true,"kind":"function","modifiers":[{"id":67064,"kind":"modifierInvocation","modifierName":{"id":67063,"name":"onlyOwner","nameLocations":["4328:9:97"],"nodeType":"IdentifierPath","referencedDeclaration":52665,"src":"4328:9:97"},"nodeType":"ModifierInvocation","src":"4328:9:97"}],"name":"setNodeRegistryConfig","nameLocation":"4007:21:97","overrides":{"id":67062,"nodeType":"OverrideSpecifier","overrides":[{"id":67061,"name":"INodeRegistryOwner","nameLocations":["4308:18:97"],"nodeType":"IdentifierPath","referencedDeclaration":69950,"src":"4308:18:97"}],"src":"4299:28:97"},"parameters":{"id":67060,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67049,"mutability":"mutable","name":"controllerContractAddress","nameLocation":"4046:25:97","nodeType":"VariableDeclaration","scope":67078,"src":"4038:33:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67048,"name":"address","nodeType":"ElementaryTypeName","src":"4038:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":67051,"mutability":"mutable","name":"stakingContractAddress","nameLocation":"4089:22:97","nodeType":"VariableDeclaration","scope":67078,"src":"4081:30:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67050,"name":"address","nodeType":"ElementaryTypeName","src":"4081:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":67053,"mutability":"mutable","name":"serviceManagerContractAddress","nameLocation":"4129:29:97","nodeType":"VariableDeclaration","scope":67078,"src":"4121:37:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67052,"name":"address","nodeType":"ElementaryTypeName","src":"4121:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":67055,"mutability":"mutable","name":"nativeNodeStakingAmount","nameLocation":"4176:23:97","nodeType":"VariableDeclaration","scope":67078,"src":"4168:31:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":67054,"name":"uint256","nodeType":"ElementaryTypeName","src":"4168:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":67057,"mutability":"mutable","name":"eigenlayerNodeStakingAmount","nameLocation":"4217:27:97","nodeType":"VariableDeclaration","scope":67078,"src":"4209:35:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":67056,"name":"uint256","nodeType":"ElementaryTypeName","src":"4209:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":67059,"mutability":"mutable","name":"pendingBlockAfterQuit","nameLocation":"4262:21:97","nodeType":"VariableDeclaration","scope":67078,"src":"4254:29:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":67058,"name":"uint256","nodeType":"ElementaryTypeName","src":"4254:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4028:261:97"},"returnParameters":{"id":67065,"nodeType":"ParameterList","parameters":[],"src":"4338:0:97"},"scope":68254,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":67095,"nodeType":"FunctionDefinition","src":"4630:175:97","nodes":[],"body":{"id":67094,"nodeType":"Block","src":"4744:61:97","nodes":[],"statements":[{"expression":{"arguments":[{"id":67090,"name":"nodeIdAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67080,"src":"4770:13:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":67091,"name":"pendingBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67082,"src":"4785:12:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":67089,"name":"_nodeQuitHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68153,"src":"4754:15:97","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":67092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4754:44:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67093,"nodeType":"ExpressionStatement","src":"4754:44:97"}]},"baseFunctions":[69939],"functionSelector":"add60b4c","implemented":true,"kind":"function","modifiers":[{"id":67087,"kind":"modifierInvocation","modifierName":{"id":67086,"name":"onlyOwner","nameLocations":["4734:9:97"],"nodeType":"IdentifierPath","referencedDeclaration":52665,"src":"4734:9:97"},"nodeType":"ModifierInvocation","src":"4734:9:97"}],"name":"dismissNode","nameLocation":"4639:11:97","overrides":{"id":67085,"nodeType":"OverrideSpecifier","overrides":[{"id":67084,"name":"INodeRegistryOwner","nameLocations":["4714:18:97"],"nodeType":"IdentifierPath","referencedDeclaration":69950,"src":"4714:18:97"}],"src":"4705:28:97"},"parameters":{"id":67083,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67080,"mutability":"mutable","name":"nodeIdAddress","nameLocation":"4659:13:97","nodeType":"VariableDeclaration","scope":67095,"src":"4651:21:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67079,"name":"address","nodeType":"ElementaryTypeName","src":"4651:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":67082,"mutability":"mutable","name":"pendingBlock","nameLocation":"4682:12:97","nodeType":"VariableDeclaration","scope":67095,"src":"4674:20:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":67081,"name":"uint256","nodeType":"ElementaryTypeName","src":"4674:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4650:45:97"},"returnParameters":{"id":67088,"nodeType":"ParameterList","parameters":[],"src":"4744:0:97"},"scope":68254,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":67161,"nodeType":"FunctionDefinition","src":"4811:620:97","nodes":[],"body":{"id":67160,"nodeType":"Block","src":"4988:443:97","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":67112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":67108,"name":"assetAccountAddresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67098,"src":"5002:21:97","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":67109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5024:6:97","memberName":"length","nodeType":"MemberAccess","src":"5002:28:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":67110,"name":"nodeAddresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67101,"src":"5034:13:97","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":67111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5048:6:97","memberName":"length","nodeType":"MemberAccess","src":"5034:20:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5002:52:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":67117,"nodeType":"IfStatement","src":"4998:110:97","trueBody":{"id":67116,"nodeType":"Block","src":"5056:52:97","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":67113,"name":"InvalidArrayLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67011,"src":"5077:18:97","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":67114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5077:20:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67115,"nodeType":"RevertStatement","src":"5070:27:97"}]}},{"body":{"id":67158,"nodeType":"Block","src":"5176:249:97","statements":[{"expression":{"id":67137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":67129,"name":"_assetAccountsToNodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66929,"src":"5190:21:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":67133,"indexExpression":{"baseExpression":{"id":67130,"name":"assetAccountAddresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67098,"src":"5212:21:97","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":67132,"indexExpression":{"id":67131,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67119,"src":"5234:1:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5212:24:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5190:47:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":67134,"name":"nodeAddresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67101,"src":"5240:13:97","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":67136,"indexExpression":{"id":67135,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67119,"src":"5254:1:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5240:16:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5190:66:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":67138,"nodeType":"ExpressionStatement","src":"5190:66:97"},{"expression":{"id":67147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":67139,"name":"_nodesToAssetAccounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66933,"src":"5270:21:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":67143,"indexExpression":{"baseExpression":{"id":67140,"name":"nodeAddresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67101,"src":"5292:13:97","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":67142,"indexExpression":{"id":67141,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67119,"src":"5306:1:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5292:16:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5270:39:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":67144,"name":"assetAccountAddresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67098,"src":"5312:21:97","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":67146,"indexExpression":{"id":67145,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67119,"src":"5334:1:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5312:24:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5270:66:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":67148,"nodeType":"ExpressionStatement","src":"5270:66:97"},{"eventCall":{"arguments":[{"baseExpression":{"id":67150,"name":"assetAccountAddresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67098,"src":"5371:21:97","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":67152,"indexExpression":{"id":67151,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67119,"src":"5393:1:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5371:24:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":67153,"name":"nodeAddresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67101,"src":"5397:13:97","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":67155,"indexExpression":{"id":67154,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67119,"src":"5411:1:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5397:16:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":67149,"name":"AssetAccountSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66985,"src":"5355:15:97","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":67156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5355:59:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67157,"nodeType":"EmitStatement","src":"5350:64:97"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":67125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":67122,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67119,"src":"5137:1:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":67123,"name":"assetAccountAddresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67098,"src":"5141:21:97","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":67124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5163:6:97","memberName":"length","nodeType":"MemberAccess","src":"5141:28:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5137:32:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":67159,"initializationExpression":{"assignments":[67119],"declarations":[{"constant":false,"id":67119,"mutability":"mutable","name":"i","nameLocation":"5130:1:97","nodeType":"VariableDeclaration","scope":67159,"src":"5122:9:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":67118,"name":"uint256","nodeType":"ElementaryTypeName","src":"5122:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":67121,"initialValue":{"hexValue":"30","id":67120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5134:1:97","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5122:13:97"},"loopExpression":{"expression":{"id":67127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5171:3:97","subExpression":{"id":67126,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67119,"src":"5171:1:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":67128,"nodeType":"ExpressionStatement","src":"5171:3:97"},"nodeType":"ForStatement","src":"5117:308:97"}]},"baseFunctions":[69949],"functionSelector":"081342ba","implemented":true,"kind":"function","modifiers":[{"id":67106,"kind":"modifierInvocation","modifierName":{"id":67105,"name":"onlyOwner","nameLocations":["4974:9:97"],"nodeType":"IdentifierPath","referencedDeclaration":52665,"src":"4974:9:97"},"nodeType":"ModifierInvocation","src":"4974:9:97"}],"name":"setAssetAccount","nameLocation":"4820:15:97","overrides":{"id":67104,"nodeType":"OverrideSpecifier","overrides":[{"id":67103,"name":"INodeRegistryOwner","nameLocations":["4946:18:97"],"nodeType":"IdentifierPath","referencedDeclaration":69950,"src":"4946:18:97"}],"src":"4937:28:97"},"parameters":{"id":67102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67098,"mutability":"mutable","name":"assetAccountAddresses","nameLocation":"4855:21:97","nodeType":"VariableDeclaration","scope":67161,"src":"4836:40:97","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":67096,"name":"address","nodeType":"ElementaryTypeName","src":"4836:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":67097,"nodeType":"ArrayTypeName","src":"4836:9:97","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":67101,"mutability":"mutable","name":"nodeAddresses","nameLocation":"4897:13:97","nodeType":"VariableDeclaration","scope":67161,"src":"4878:32:97","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":67099,"name":"address","nodeType":"ElementaryTypeName","src":"4878:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":67100,"nodeType":"ArrayTypeName","src":"4878:9:97","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"4835:76:97"},"returnParameters":{"id":67107,"nodeType":"ParameterList","parameters":[],"src":"4988:0:97"},"scope":68254,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":67267,"nodeType":"FunctionDefinition","src":"5500:1436:97","nodes":[],"body":{"id":67266,"nodeType":"Block","src":"5747:1189:97","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":67182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":67175,"name":"_assetAccountsToNodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66929,"src":"5761:21:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":67177,"indexExpression":{"id":67176,"name":"assetAccountAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67167,"src":"5783:19:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5761:42:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":67180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5815:1:97","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":67179,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5807:7:97","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":67178,"name":"address","nodeType":"ElementaryTypeName","src":"5807:7:97","typeDescriptions":{}}},"id":67181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5807:10:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5761:56:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":67187,"nodeType":"IfStatement","src":"5757:117:97","trueBody":{"id":67186,"nodeType":"Block","src":"5819:55:97","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":67183,"name":"NodeAlreadyRegistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66989,"src":"5840:21:97","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":67184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5840:23:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67185,"nodeType":"RevertStatement","src":"5833:30:97"}]}},{"expression":{"arguments":[{"id":67189,"name":"dkgPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67163,"src":"5898:12:97","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":67190,"name":"isEigenlayerNode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67165,"src":"5912:16:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":67188,"name":"_nodeRegister","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68038,"src":"5884:13:97","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_calldata_ptr_$_t_bool_$returns$__$","typeString":"function (bytes calldata,bool)"}},"id":67191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5884:45:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67192,"nodeType":"ExpressionStatement","src":"5884:45:97"},{"expression":{"id":67198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":67193,"name":"_assetAccountsToNodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66929,"src":"5940:21:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":67195,"indexExpression":{"id":67194,"name":"assetAccountAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67167,"src":"5962:19:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5940:42:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":67196,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5985:3:97","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":67197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5989:6:97","memberName":"sender","nodeType":"MemberAccess","src":"5985:10:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5940:55:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":67199,"nodeType":"ExpressionStatement","src":"5940:55:97"},{"expression":{"id":67205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":67200,"name":"_nodesToAssetAccounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66933,"src":"6005:21:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":67203,"indexExpression":{"expression":{"id":67201,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6027:3:97","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":67202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6031:6:97","memberName":"sender","nodeType":"MemberAccess","src":"6027:10:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6005:33:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":67204,"name":"assetAccountAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67167,"src":"6041:19:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6005:55:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":67206,"nodeType":"ExpressionStatement","src":"6005:55:97"},{"condition":{"id":67207,"name":"isEigenlayerNode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67165,"src":"6075:16:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":67258,"nodeType":"Block","src":"6515:351:97","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":67240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":67237,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6533:3:97","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":67238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6537:6:97","memberName":"sender","nodeType":"MemberAccess","src":"6533:10:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":67239,"name":"assetAccountAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67167,"src":"6547:19:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6533:33:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":67247,"nodeType":"IfStatement","src":"6529:155:97","trueBody":{"id":67246,"nodeType":"Block","src":"6568:116:97","statements":[{"expression":{"arguments":[{"id":67242,"name":"assetAccountAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67167,"src":"6626:19:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":67243,"name":"assetAccountSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67170,"src":"6647:21:97","typeDescriptions":{"typeIdentifier":"t_struct$_SignatureWithSaltAndExpiry_$70068_memory_ptr","typeString":"struct ISignatureUtils.SignatureWithSaltAndExpiry memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_SignatureWithSaltAndExpiry_$70068_memory_ptr","typeString":"struct ISignatureUtils.SignatureWithSaltAndExpiry memory"}],"id":67241,"name":"_checkEIP1271SignatureWithSaltAndExpiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68209,"src":"6586:39:97","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_struct$_SignatureWithSaltAndExpiry_$70068_memory_ptr_$returns$__$","typeString":"function (address,struct ISignatureUtils.SignatureWithSaltAndExpiry memory)"}},"id":67244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6586:83:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67245,"nodeType":"ExpressionStatement","src":"6586:83:97"}]}},{"expression":{"arguments":[{"id":67253,"name":"assetAccountAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67167,"src":"6802:19:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":67254,"name":"_config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66909,"src":"6823:7:97","typeDescriptions":{"typeIdentifier":"t_struct$_NodeRegistryConfig_$69779_storage","typeString":"struct INodeRegistry.NodeRegistryConfig storage ref"}},"id":67255,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6831:23:97","memberName":"nativeNodeStakingAmount","nodeType":"MemberAccess","referencedDeclaration":69774,"src":"6823:31:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":67249,"name":"_config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66909,"src":"6765:7:97","typeDescriptions":{"typeIdentifier":"t_struct$_NodeRegistryConfig_$69779_storage","typeString":"struct INodeRegistry.NodeRegistryConfig storage ref"}},"id":67250,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6773:22:97","memberName":"stakingContractAddress","nodeType":"MemberAccess","referencedDeclaration":69770,"src":"6765:30:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":67248,"name":"INodeStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6590,"src":"6752:12:97","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INodeStaking_$6590_$","typeString":"type(contract INodeStaking)"}},"id":67251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6752:44:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_INodeStaking_$6590","typeString":"contract INodeStaking"}},"id":67252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6797:4:97","memberName":"lock","nodeType":"MemberAccess","referencedDeclaration":6565,"src":"6752:49:97","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":67256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6752:103:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67257,"nodeType":"ExpressionStatement","src":"6752:103:97"}]},"id":67259,"nodeType":"IfStatement","src":"6071:795:97","trueBody":{"id":67236,"nodeType":"Block","src":"6093:416:97","statements":[{"assignments":[67209],"declarations":[{"constant":false,"id":67209,"mutability":"mutable","name":"share","nameLocation":"6115:5:97","nodeType":"VariableDeclaration","scope":67236,"src":"6107:13:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":67208,"name":"uint256","nodeType":"ElementaryTypeName","src":"6107:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":67217,"initialValue":{"arguments":[{"id":67215,"name":"assetAccountAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67167,"src":"6195:19:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"id":67211,"name":"_config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66909,"src":"6139:7:97","typeDescriptions":{"typeIdentifier":"t_struct$_NodeRegistryConfig_$69779_storage","typeString":"struct INodeRegistry.NodeRegistryConfig storage ref"}},"id":67212,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6147:29:97","memberName":"serviceManagerContractAddress","nodeType":"MemberAccess","referencedDeclaration":69772,"src":"6139:37:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":67210,"name":"IServiceManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70053,"src":"6123:15:97","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IServiceManager_$70053_$","typeString":"type(contract IServiceManager)"}},"id":67213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6123:54:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IServiceManager_$70053","typeString":"contract IServiceManager"}},"id":67214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6178:16:97","memberName":"getOperatorShare","nodeType":"MemberAccess","referencedDeclaration":70052,"src":"6123:71:97","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":67216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6123:92:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6107:108:97"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":67221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":67218,"name":"share","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67209,"src":"6233:5:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":67219,"name":"_config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66909,"src":"6241:7:97","typeDescriptions":{"typeIdentifier":"t_struct$_NodeRegistryConfig_$69779_storage","typeString":"struct INodeRegistry.NodeRegistryConfig storage ref"}},"id":67220,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6249:27:97","memberName":"eigenlayerNodeStakingAmount","nodeType":"MemberAccess","referencedDeclaration":69776,"src":"6241:35:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6233:43:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":67226,"nodeType":"IfStatement","src":"6229:111:97","trueBody":{"id":67225,"nodeType":"Block","src":"6278:62:97","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":67222,"name":"OperatorUnderStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67001,"src":"6303:20:97","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":67223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6303:22:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67224,"nodeType":"RevertStatement","src":"6296:29:97"}]}},{"expression":{"arguments":[{"id":67232,"name":"assetAccountAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67167,"src":"6442:19:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":67233,"name":"assetAccountSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67170,"src":"6463:21:97","typeDescriptions":{"typeIdentifier":"t_struct$_SignatureWithSaltAndExpiry_$70068_memory_ptr","typeString":"struct ISignatureUtils.SignatureWithSaltAndExpiry memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_SignatureWithSaltAndExpiry_$70068_memory_ptr","typeString":"struct ISignatureUtils.SignatureWithSaltAndExpiry memory"}],"expression":{"arguments":[{"expression":{"id":67228,"name":"_config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66909,"src":"6369:7:97","typeDescriptions":{"typeIdentifier":"t_struct$_NodeRegistryConfig_$69779_storage","typeString":"struct INodeRegistry.NodeRegistryConfig storage ref"}},"id":67229,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6377:29:97","memberName":"serviceManagerContractAddress","nodeType":"MemberAccess","referencedDeclaration":69772,"src":"6369:37:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":67227,"name":"IServiceManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70053,"src":"6353:15:97","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IServiceManager_$70053_$","typeString":"type(contract IServiceManager)"}},"id":67230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6353:54:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IServiceManager_$70053","typeString":"contract IServiceManager"}},"id":67231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6408:16:97","memberName":"registerOperator","nodeType":"MemberAccess","referencedDeclaration":70033,"src":"6353:71:97","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_struct$_SignatureWithSaltAndExpiry_$70068_memory_ptr_$returns$__$","typeString":"function (address,struct ISignatureUtils.SignatureWithSaltAndExpiry memory) external"}},"id":67234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6353:145:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67235,"nodeType":"ExpressionStatement","src":"6353:145:97"}]}},{"eventCall":{"arguments":[{"id":67261,"name":"assetAccountAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67167,"src":"6897:19:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":67262,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6918:3:97","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":67263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6922:6:97","memberName":"sender","nodeType":"MemberAccess","src":"6918:10:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":67260,"name":"AssetAccountSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66985,"src":"6881:15:97","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":67264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6881:48:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67265,"nodeType":"EmitStatement","src":"6876:53:97"}]},"baseFunctions":[69791],"functionSelector":"30d640b2","implemented":true,"kind":"function","modifiers":[],"name":"nodeRegister","nameLocation":"5509:12:97","overrides":{"id":67173,"nodeType":"OverrideSpecifier","overrides":[{"id":67172,"name":"INodeRegistry","nameLocations":["5732:13:97"],"nodeType":"IdentifierPath","referencedDeclaration":69908,"src":"5732:13:97"}],"src":"5723:23:97"},"parameters":{"id":67171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67163,"mutability":"mutable","name":"dkgPublicKey","nameLocation":"5546:12:97","nodeType":"VariableDeclaration","scope":67267,"src":"5531:27:97","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":67162,"name":"bytes","nodeType":"ElementaryTypeName","src":"5531:5:97","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":67165,"mutability":"mutable","name":"isEigenlayerNode","nameLocation":"5573:16:97","nodeType":"VariableDeclaration","scope":67267,"src":"5568:21:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":67164,"name":"bool","nodeType":"ElementaryTypeName","src":"5568:4:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":67167,"mutability":"mutable","name":"assetAccountAddress","nameLocation":"5607:19:97","nodeType":"VariableDeclaration","scope":67267,"src":"5599:27:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67166,"name":"address","nodeType":"ElementaryTypeName","src":"5599:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":67170,"mutability":"mutable","name":"assetAccountSignature","nameLocation":"5686:21:97","nodeType":"VariableDeclaration","scope":67267,"src":"5636:71:97","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SignatureWithSaltAndExpiry_$70068_memory_ptr","typeString":"struct ISignatureUtils.SignatureWithSaltAndExpiry"},"typeName":{"id":67169,"nodeType":"UserDefinedTypeName","pathNode":{"id":67168,"name":"ISignatureUtils.SignatureWithSaltAndExpiry","nameLocations":["5636:15:97","5652:26:97"],"nodeType":"IdentifierPath","referencedDeclaration":70068,"src":"5636:42:97"},"referencedDeclaration":70068,"src":"5636:42:97","typeDescriptions":{"typeIdentifier":"t_struct$_SignatureWithSaltAndExpiry_$70068_storage_ptr","typeString":"struct ISignatureUtils.SignatureWithSaltAndExpiry"}},"visibility":"internal"}],"src":"5521:192:97"},"returnParameters":{"id":67174,"nodeType":"ParameterList","parameters":[],"src":"5747:0:97"},"scope":68254,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":67415,"nodeType":"FunctionDefinition","src":"6942:1824:97","nodes":[],"body":{"id":67414,"nodeType":"Block","src":"7090:1676:97","nodes":[],"statements":[{"assignments":[67277],"declarations":[{"constant":false,"id":67277,"mutability":"mutable","name":"node","nameLocation":"7113:4:97","nodeType":"VariableDeclaration","scope":67414,"src":"7100:17:97","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Node_$69766_storage_ptr","typeString":"struct INodeRegistry.Node"},"typeName":{"id":67276,"nodeType":"UserDefinedTypeName","pathNode":{"id":67275,"name":"Node","nameLocations":["7100:4:97"],"nodeType":"IdentifierPath","referencedDeclaration":69766,"src":"7100:4:97"},"referencedDeclaration":69766,"src":"7100:4:97","typeDescriptions":{"typeIdentifier":"t_struct$_Node_$69766_storage_ptr","typeString":"struct INodeRegistry.Node"}},"visibility":"internal"}],"id":67282,"initialValue":{"baseExpression":{"id":67278,"name":"_nodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66917,"src":"7120:6:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Node_$69766_storage_$","typeString":"mapping(address => struct INodeRegistry.Node storage ref)"}},"id":67281,"indexExpression":{"expression":{"id":67279,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7127:3:97","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":67280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7131:6:97","memberName":"sender","nodeType":"MemberAccess","src":"7127:10:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7120:18:97","typeDescriptions":{"typeIdentifier":"t_struct$_Node_$69766_storage","typeString":"struct INodeRegistry.Node storage ref"}},"nodeType":"VariableDeclarationStatement","src":"7100:38:97"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":67287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":67283,"name":"node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67277,"src":"7152:4:97","typeDescriptions":{"typeIdentifier":"t_struct$_Node_$69766_storage_ptr","typeString":"struct INodeRegistry.Node storage pointer"}},"id":67284,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7157:9:97","memberName":"idAddress","nodeType":"MemberAccess","referencedDeclaration":69757,"src":"7152:14:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":67285,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7170:3:97","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":67286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7174:6:97","memberName":"sender","nodeType":"MemberAccess","src":"7170:10:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7152:28:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":67292,"nodeType":"IfStatement","src":"7148:85:97","trueBody":{"id":67291,"nodeType":"Block","src":"7182:51:97","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":67288,"name":"NodeNotRegistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66987,"src":"7203:17:97","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":67289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7203:19:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67290,"nodeType":"RevertStatement","src":"7196:26:97"}]}},{"condition":{"expression":{"id":67293,"name":"node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67277,"src":"7247:4:97","typeDescriptions":{"typeIdentifier":"t_struct$_Node_$69766_storage_ptr","typeString":"struct INodeRegistry.Node storage pointer"}},"id":67294,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7252:5:97","memberName":"state","nodeType":"MemberAccess","referencedDeclaration":69763,"src":"7247:10:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":67299,"nodeType":"IfStatement","src":"7243:67:97","trueBody":{"id":67298,"nodeType":"Block","src":"7259:51:97","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":67295,"name":"NodeAlreadyActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66991,"src":"7280:17:97","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":67296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7280:19:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67297,"nodeType":"RevertStatement","src":"7273:26:97"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":67304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":67300,"name":"node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67277,"src":"7324:4:97","typeDescriptions":{"typeIdentifier":"t_struct$_Node_$69766_storage_ptr","typeString":"struct INodeRegistry.Node storage pointer"}},"id":67301,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7329:17:97","memberName":"pendingUntilBlock","nodeType":"MemberAccess","referencedDeclaration":69765,"src":"7324:22:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":67302,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"7349:5:97","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":67303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7355:6:97","memberName":"number","nodeType":"MemberAccess","src":"7349:12:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7324:37:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":67311,"nodeType":"IfStatement","src":"7320:115:97","trueBody":{"id":67310,"nodeType":"Block","src":"7363:72:97","statements":[{"errorCall":{"arguments":[{"expression":{"id":67306,"name":"node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67277,"src":"7401:4:97","typeDescriptions":{"typeIdentifier":"t_struct$_Node_$69766_storage_ptr","typeString":"struct INodeRegistry.Node storage pointer"}},"id":67307,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7406:17:97","memberName":"pendingUntilBlock","nodeType":"MemberAccess","referencedDeclaration":69765,"src":"7401:22:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":67305,"name":"NodeStillPending","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66995,"src":"7384:16:97","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":67308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7384:40:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67309,"nodeType":"RevertStatement","src":"7377:47:97"}]}},{"expression":{"id":67316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":67312,"name":"node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67277,"src":"7445:4:97","typeDescriptions":{"typeIdentifier":"t_struct$_Node_$69766_storage_ptr","typeString":"struct INodeRegistry.Node storage pointer"}},"id":67314,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7450:5:97","memberName":"state","nodeType":"MemberAccess","referencedDeclaration":69763,"src":"7445:10:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":67315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7458:4:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"7445:17:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":67317,"nodeType":"ExpressionStatement","src":"7445:17:97"},{"assignments":[67319],"declarations":[{"constant":false,"id":67319,"mutability":"mutable","name":"groupIndex","nameLocation":"7481:10:97","nodeType":"VariableDeclaration","scope":67414,"src":"7473:18:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":67318,"name":"uint256","nodeType":"ElementaryTypeName","src":"7473:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":67328,"initialValue":{"arguments":[{"expression":{"id":67325,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7550:3:97","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":67326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7554:6:97","memberName":"sender","nodeType":"MemberAccess","src":"7550:10:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"id":67321,"name":"_config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66909,"src":"7506:7:97","typeDescriptions":{"typeIdentifier":"t_struct$_NodeRegistryConfig_$69779_storage","typeString":"struct INodeRegistry.NodeRegistryConfig storage ref"}},"id":67322,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7514:25:97","memberName":"controllerContractAddress","nodeType":"MemberAccess","referencedDeclaration":69768,"src":"7506:33:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":67320,"name":"IController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69524,"src":"7494:11:97","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IController_$69524_$","typeString":"type(contract IController)"}},"id":67323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7494:46:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IController_$69524","typeString":"contract IController"}},"id":67324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7541:8:97","memberName":"nodeJoin","nodeType":"MemberAccess","referencedDeclaration":69388,"src":"7494:55:97","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$_t_uint256_$","typeString":"function (address) external returns (uint256)"}},"id":67327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7494:67:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7473:88:97"},{"eventCall":{"arguments":[{"expression":{"id":67330,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7591:3:97","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":67331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7595:6:97","memberName":"sender","nodeType":"MemberAccess","src":"7591:10:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":67332,"name":"groupIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67319,"src":"7603:10:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":67329,"name":"NodeActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66953,"src":"7577:13:97","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":67333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7577:37:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67334,"nodeType":"EmitStatement","src":"7572:42:97"},{"assignments":[67336],"declarations":[{"constant":false,"id":67336,"mutability":"mutable","name":"assetAccountAddress","nameLocation":"7633:19:97","nodeType":"VariableDeclaration","scope":67414,"src":"7625:27:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67335,"name":"address","nodeType":"ElementaryTypeName","src":"7625:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":67341,"initialValue":{"baseExpression":{"id":67337,"name":"_nodesToAssetAccounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66933,"src":"7655:21:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":67340,"indexExpression":{"expression":{"id":67338,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7677:3:97","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":67339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7681:6:97","memberName":"sender","nodeType":"MemberAccess","src":"7677:10:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7655:33:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"7625:63:97"},{"condition":{"expression":{"id":67342,"name":"node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67277,"src":"7703:4:97","typeDescriptions":{"typeIdentifier":"t_struct$_Node_$69766_storage_ptr","typeString":"struct INodeRegistry.Node storage pointer"}},"id":67343,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7708:16:97","memberName":"isEigenlayerNode","nodeType":"MemberAccess","referencedDeclaration":69761,"src":"7703:21:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":67412,"nodeType":"Block","src":"8148:612:97","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":67376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":67373,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8166:3:97","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":67374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8170:6:97","memberName":"sender","nodeType":"MemberAccess","src":"8166:10:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":67375,"name":"assetAccountAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67336,"src":"8180:19:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8166:33:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":67383,"nodeType":"IfStatement","src":"8162:155:97","trueBody":{"id":67382,"nodeType":"Block","src":"8201:116:97","statements":[{"expression":{"arguments":[{"id":67378,"name":"assetAccountAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67336,"src":"8259:19:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":67379,"name":"assetAccountSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67270,"src":"8280:21:97","typeDescriptions":{"typeIdentifier":"t_struct$_SignatureWithSaltAndExpiry_$70068_memory_ptr","typeString":"struct ISignatureUtils.SignatureWithSaltAndExpiry memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_SignatureWithSaltAndExpiry_$70068_memory_ptr","typeString":"struct ISignatureUtils.SignatureWithSaltAndExpiry memory"}],"id":67377,"name":"_checkEIP1271SignatureWithSaltAndExpiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68209,"src":"8219:39:97","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_struct$_SignatureWithSaltAndExpiry_$70068_memory_ptr_$returns$__$","typeString":"function (address,struct ISignatureUtils.SignatureWithSaltAndExpiry memory)"}},"id":67380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8219:83:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67381,"nodeType":"ExpressionStatement","src":"8219:83:97"}]}},{"assignments":[67385],"declarations":[{"constant":false,"id":67385,"mutability":"mutable","name":"lockedAmount","nameLocation":"8399:12:97","nodeType":"VariableDeclaration","scope":67412,"src":"8391:20:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":67384,"name":"uint256","nodeType":"ElementaryTypeName","src":"8391:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":67393,"initialValue":{"arguments":[{"id":67391,"name":"assetAccountAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67336,"src":"8475:19:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"id":67387,"name":"_config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66909,"src":"8427:7:97","typeDescriptions":{"typeIdentifier":"t_struct$_NodeRegistryConfig_$69779_storage","typeString":"struct INodeRegistry.NodeRegistryConfig storage ref"}},"id":67388,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8435:22:97","memberName":"stakingContractAddress","nodeType":"MemberAccess","referencedDeclaration":69770,"src":"8427:30:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":67386,"name":"INodeStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6590,"src":"8414:12:97","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INodeStaking_$6590_$","typeString":"type(contract INodeStaking)"}},"id":67389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8414:44:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_INodeStaking_$6590","typeString":"contract INodeStaking"}},"id":67390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8459:15:97","memberName":"getLockedAmount","nodeType":"MemberAccess","referencedDeclaration":6589,"src":"8414:60:97","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":67392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8414:81:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8391:104:97"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":67397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":67394,"name":"lockedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67385,"src":"8513:12:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":67395,"name":"_config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66909,"src":"8528:7:97","typeDescriptions":{"typeIdentifier":"t_struct$_NodeRegistryConfig_$69779_storage","typeString":"struct INodeRegistry.NodeRegistryConfig storage ref"}},"id":67396,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8536:23:97","memberName":"nativeNodeStakingAmount","nodeType":"MemberAccess","referencedDeclaration":69774,"src":"8528:31:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8513:46:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":67411,"nodeType":"IfStatement","src":"8509:241:97","trueBody":{"id":67410,"nodeType":"Block","src":"8561:189:97","statements":[{"expression":{"arguments":[{"id":67403,"name":"assetAccountAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67336,"src":"8650:19:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":67407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":67404,"name":"_config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66909,"src":"8671:7:97","typeDescriptions":{"typeIdentifier":"t_struct$_NodeRegistryConfig_$69779_storage","typeString":"struct INodeRegistry.NodeRegistryConfig storage ref"}},"id":67405,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8679:23:97","memberName":"nativeNodeStakingAmount","nodeType":"MemberAccess","referencedDeclaration":69774,"src":"8671:31:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":67406,"name":"lockedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67385,"src":"8705:12:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8671:46:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":67399,"name":"_config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66909,"src":"8592:7:97","typeDescriptions":{"typeIdentifier":"t_struct$_NodeRegistryConfig_$69779_storage","typeString":"struct INodeRegistry.NodeRegistryConfig storage ref"}},"id":67400,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8600:22:97","memberName":"stakingContractAddress","nodeType":"MemberAccess","referencedDeclaration":69770,"src":"8592:30:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":67398,"name":"INodeStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6590,"src":"8579:12:97","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INodeStaking_$6590_$","typeString":"type(contract INodeStaking)"}},"id":67401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8579:44:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_INodeStaking_$6590","typeString":"contract INodeStaking"}},"id":67402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8624:4:97","memberName":"lock","nodeType":"MemberAccess","referencedDeclaration":6565,"src":"8579:49:97","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":67408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8579:156:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67409,"nodeType":"ExpressionStatement","src":"8579:156:97"}]}}]},"id":67413,"nodeType":"IfStatement","src":"7699:1061:97","trueBody":{"id":67372,"nodeType":"Block","src":"7726:416:97","statements":[{"assignments":[67345],"declarations":[{"constant":false,"id":67345,"mutability":"mutable","name":"share","nameLocation":"7748:5:97","nodeType":"VariableDeclaration","scope":67372,"src":"7740:13:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":67344,"name":"uint256","nodeType":"ElementaryTypeName","src":"7740:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":67353,"initialValue":{"arguments":[{"id":67351,"name":"assetAccountAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67336,"src":"7828:19:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"id":67347,"name":"_config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66909,"src":"7772:7:97","typeDescriptions":{"typeIdentifier":"t_struct$_NodeRegistryConfig_$69779_storage","typeString":"struct INodeRegistry.NodeRegistryConfig storage ref"}},"id":67348,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7780:29:97","memberName":"serviceManagerContractAddress","nodeType":"MemberAccess","referencedDeclaration":69772,"src":"7772:37:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":67346,"name":"IServiceManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70053,"src":"7756:15:97","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IServiceManager_$70053_$","typeString":"type(contract IServiceManager)"}},"id":67349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7756:54:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IServiceManager_$70053","typeString":"contract IServiceManager"}},"id":67350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7811:16:97","memberName":"getOperatorShare","nodeType":"MemberAccess","referencedDeclaration":70052,"src":"7756:71:97","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":67352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7756:92:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7740:108:97"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":67357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":67354,"name":"share","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67345,"src":"7866:5:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":67355,"name":"_config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66909,"src":"7874:7:97","typeDescriptions":{"typeIdentifier":"t_struct$_NodeRegistryConfig_$69779_storage","typeString":"struct INodeRegistry.NodeRegistryConfig storage ref"}},"id":67356,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7882:27:97","memberName":"eigenlayerNodeStakingAmount","nodeType":"MemberAccess","referencedDeclaration":69776,"src":"7874:35:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7866:43:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":67362,"nodeType":"IfStatement","src":"7862:111:97","trueBody":{"id":67361,"nodeType":"Block","src":"7911:62:97","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":67358,"name":"OperatorUnderStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67001,"src":"7936:20:97","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":67359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7936:22:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67360,"nodeType":"RevertStatement","src":"7929:29:97"}]}},{"expression":{"arguments":[{"id":67368,"name":"assetAccountAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67336,"src":"8075:19:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":67369,"name":"assetAccountSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67270,"src":"8096:21:97","typeDescriptions":{"typeIdentifier":"t_struct$_SignatureWithSaltAndExpiry_$70068_memory_ptr","typeString":"struct ISignatureUtils.SignatureWithSaltAndExpiry memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_SignatureWithSaltAndExpiry_$70068_memory_ptr","typeString":"struct ISignatureUtils.SignatureWithSaltAndExpiry memory"}],"expression":{"arguments":[{"expression":{"id":67364,"name":"_config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66909,"src":"8002:7:97","typeDescriptions":{"typeIdentifier":"t_struct$_NodeRegistryConfig_$69779_storage","typeString":"struct INodeRegistry.NodeRegistryConfig storage ref"}},"id":67365,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8010:29:97","memberName":"serviceManagerContractAddress","nodeType":"MemberAccess","referencedDeclaration":69772,"src":"8002:37:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":67363,"name":"IServiceManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70053,"src":"7986:15:97","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IServiceManager_$70053_$","typeString":"type(contract IServiceManager)"}},"id":67366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7986:54:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IServiceManager_$70053","typeString":"contract IServiceManager"}},"id":67367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8041:16:97","memberName":"registerOperator","nodeType":"MemberAccess","referencedDeclaration":70033,"src":"7986:71:97","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_struct$_SignatureWithSaltAndExpiry_$70068_memory_ptr_$returns$__$","typeString":"function (address,struct ISignatureUtils.SignatureWithSaltAndExpiry memory) external"}},"id":67370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7986:145:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67371,"nodeType":"ExpressionStatement","src":"7986:145:97"}]}}]},"baseFunctions":[69797],"functionSelector":"8d2f3e6b","implemented":true,"kind":"function","modifiers":[],"name":"nodeActivate","nameLocation":"6951:12:97","overrides":{"id":67273,"nodeType":"OverrideSpecifier","overrides":[{"id":67272,"name":"INodeRegistry","nameLocations":["7071:13:97"],"nodeType":"IdentifierPath","referencedDeclaration":69908,"src":"7071:13:97"}],"src":"7062:23:97"},"parameters":{"id":67271,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67270,"mutability":"mutable","name":"assetAccountSignature","nameLocation":"7014:21:97","nodeType":"VariableDeclaration","scope":67415,"src":"6964:71:97","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SignatureWithSaltAndExpiry_$70068_memory_ptr","typeString":"struct ISignatureUtils.SignatureWithSaltAndExpiry"},"typeName":{"id":67269,"nodeType":"UserDefinedTypeName","pathNode":{"id":67268,"name":"ISignatureUtils.SignatureWithSaltAndExpiry","nameLocations":["6964:15:97","6980:26:97"],"nodeType":"IdentifierPath","referencedDeclaration":70068,"src":"6964:42:97"},"referencedDeclaration":70068,"src":"6964:42:97","typeDescriptions":{"typeIdentifier":"t_struct$_SignatureWithSaltAndExpiry_$70068_storage_ptr","typeString":"struct ISignatureUtils.SignatureWithSaltAndExpiry"}},"visibility":"internal"}],"src":"6963:73:97"},"returnParameters":{"id":67274,"nodeType":"ParameterList","parameters":[],"src":"7090:0:97"},"scope":68254,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":67428,"nodeType":"FunctionDefinition","src":"8772:128:97","nodes":[],"body":{"id":67427,"nodeType":"Block","src":"8825:75:97","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":67421,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8851:3:97","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":67422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8855:6:97","memberName":"sender","nodeType":"MemberAccess","src":"8851:10:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":67423,"name":"_config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66909,"src":"8863:7:97","typeDescriptions":{"typeIdentifier":"t_struct$_NodeRegistryConfig_$69779_storage","typeString":"struct INodeRegistry.NodeRegistryConfig storage ref"}},"id":67424,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8871:21:97","memberName":"pendingBlockAfterQuit","nodeType":"MemberAccess","referencedDeclaration":69778,"src":"8863:29:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":67420,"name":"_nodeQuitHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68153,"src":"8835:15:97","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":67425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8835:58:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67426,"nodeType":"ExpressionStatement","src":"8835:58:97"}]},"baseFunctions":[69800],"functionSelector":"7a2af56e","implemented":true,"kind":"function","modifiers":[],"name":"nodeQuit","nameLocation":"8781:8:97","overrides":{"id":67418,"nodeType":"OverrideSpecifier","overrides":[{"id":67417,"name":"INodeRegistry","nameLocations":["8810:13:97"],"nodeType":"IdentifierPath","referencedDeclaration":69908,"src":"8810:13:97"}],"src":"8801:23:97"},"parameters":{"id":67416,"nodeType":"ParameterList","parameters":[],"src":"8789:2:97"},"returnParameters":{"id":67419,"nodeType":"ParameterList","parameters":[],"src":"8825:0:97"},"scope":68254,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":67496,"nodeType":"FunctionDefinition","src":"8906:598:97","nodes":[],"body":{"id":67495,"nodeType":"Block","src":"8996:508:97","nodes":[],"statements":[{"assignments":[67437],"declarations":[{"constant":false,"id":67437,"mutability":"mutable","name":"node","nameLocation":"9019:4:97","nodeType":"VariableDeclaration","scope":67495,"src":"9006:17:97","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Node_$69766_storage_ptr","typeString":"struct INodeRegistry.Node"},"typeName":{"id":67436,"nodeType":"UserDefinedTypeName","pathNode":{"id":67435,"name":"Node","nameLocations":["9006:4:97"],"nodeType":"IdentifierPath","referencedDeclaration":69766,"src":"9006:4:97"},"referencedDeclaration":69766,"src":"9006:4:97","typeDescriptions":{"typeIdentifier":"t_struct$_Node_$69766_storage_ptr","typeString":"struct INodeRegistry.Node"}},"visibility":"internal"}],"id":67442,"initialValue":{"baseExpression":{"id":67438,"name":"_nodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66917,"src":"9026:6:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Node_$69766_storage_$","typeString":"mapping(address => struct INodeRegistry.Node storage ref)"}},"id":67441,"indexExpression":{"expression":{"id":67439,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9033:3:97","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":67440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9037:6:97","memberName":"sender","nodeType":"MemberAccess","src":"9033:10:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9026:18:97","typeDescriptions":{"typeIdentifier":"t_struct$_Node_$69766_storage","typeString":"struct INodeRegistry.Node storage ref"}},"nodeType":"VariableDeclarationStatement","src":"9006:38:97"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":67447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":67443,"name":"node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67437,"src":"9058:4:97","typeDescriptions":{"typeIdentifier":"t_struct$_Node_$69766_storage_ptr","typeString":"struct INodeRegistry.Node storage pointer"}},"id":67444,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9063:9:97","memberName":"idAddress","nodeType":"MemberAccess","referencedDeclaration":69757,"src":"9058:14:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":67445,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9076:3:97","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":67446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9080:6:97","memberName":"sender","nodeType":"MemberAccess","src":"9076:10:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9058:28:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":67452,"nodeType":"IfStatement","src":"9054:85:97","trueBody":{"id":67451,"nodeType":"Block","src":"9088:51:97","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":67448,"name":"NodeNotRegistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66987,"src":"9109:17:97","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":67449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9109:19:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67450,"nodeType":"RevertStatement","src":"9102:26:97"}]}},{"condition":{"expression":{"id":67453,"name":"node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67437,"src":"9153:4:97","typeDescriptions":{"typeIdentifier":"t_struct$_Node_$69766_storage_ptr","typeString":"struct INodeRegistry.Node storage pointer"}},"id":67454,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9158:5:97","memberName":"state","nodeType":"MemberAccess","referencedDeclaration":69763,"src":"9153:10:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":67459,"nodeType":"IfStatement","src":"9149:67:97","trueBody":{"id":67458,"nodeType":"Block","src":"9165:51:97","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":67455,"name":"NodeAlreadyActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66991,"src":"9186:17:97","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":67456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9186:19:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67457,"nodeType":"RevertStatement","src":"9179:26:97"}]}},{"assignments":[67465],"declarations":[{"constant":false,"id":67465,"mutability":"mutable","name":"publicKey","nameLocation":"9244:9:97","nodeType":"VariableDeclaration","scope":67495,"src":"9226:27:97","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_memory_ptr","typeString":"uint256[4]"},"typeName":{"baseType":{"id":67463,"name":"uint256","nodeType":"ElementaryTypeName","src":"9226:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":67464,"length":{"hexValue":"34","id":67462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9234:1:97","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"nodeType":"ArrayTypeName","src":"9226:10:97","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_storage_ptr","typeString":"uint256[4]"}},"visibility":"internal"}],"id":67470,"initialValue":{"arguments":[{"id":67468,"name":"dkgPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67430,"src":"9279:12:97","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":67466,"name":"BLS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70758,"src":"9256:3:97","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BLS_$70758_$","typeString":"type(library BLS)"}},"id":67467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9260:18:97","memberName":"fromBytesPublicKey","nodeType":"MemberAccess","referencedDeclaration":70537,"src":"9256:22:97","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_bytes_memory_ptr_$returns$_t_array$_t_uint256_$4_memory_ptr_$","typeString":"function (bytes memory) pure returns (uint256[4] memory)"}},"id":67469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9256:36:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_memory_ptr","typeString":"uint256[4] memory"}},"nodeType":"VariableDeclarationStatement","src":"9226:66:97"},{"condition":{"id":67475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9306:32:97","subExpression":{"arguments":[{"id":67473,"name":"publicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67465,"src":"9328:9:97","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_memory_ptr","typeString":"uint256[4] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$4_memory_ptr","typeString":"uint256[4] memory"}],"expression":{"id":67471,"name":"BLS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70758,"src":"9307:3:97","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BLS_$70758_$","typeString":"type(library BLS)"}},"id":67472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9311:16:97","memberName":"isValidPublicKey","nodeType":"MemberAccess","referencedDeclaration":70497,"src":"9307:20:97","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_array$_t_uint256_$4_memory_ptr_$returns$_t_bool_$","typeString":"function (uint256[4] memory) pure returns (bool)"}},"id":67474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9307:31:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":67482,"nodeType":"IfStatement","src":"9302:92:97","trueBody":{"id":67481,"nodeType":"Block","src":"9340:54:97","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":67476,"name":"BLS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70758,"src":"9361:3:97","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BLS_$70758_$","typeString":"type(library BLS)"}},"id":67478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9365:16:97","memberName":"InvalidPublicKey","nodeType":"MemberAccess","referencedDeclaration":70108,"src":"9361:20:97","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":67479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9361:22:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67480,"nodeType":"RevertStatement","src":"9354:29:97"}]}},{"expression":{"id":67487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":67483,"name":"node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67437,"src":"9404:4:97","typeDescriptions":{"typeIdentifier":"t_struct$_Node_$69766_storage_ptr","typeString":"struct INodeRegistry.Node storage pointer"}},"id":67485,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9409:12:97","memberName":"dkgPublicKey","nodeType":"MemberAccess","referencedDeclaration":69759,"src":"9404:17:97","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":67486,"name":"dkgPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67430,"src":"9424:12:97","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"9404:32:97","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":67488,"nodeType":"ExpressionStatement","src":"9404:32:97"},{"eventCall":{"arguments":[{"expression":{"id":67490,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9472:3:97","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":67491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9476:6:97","memberName":"sender","nodeType":"MemberAccess","src":"9472:10:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":67492,"name":"dkgPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67430,"src":"9484:12:97","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":67489,"name":"DkgPublicKeyChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66963,"src":"9452:19:97","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":67493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9452:45:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67494,"nodeType":"EmitStatement","src":"9447:50:97"}]},"baseFunctions":[69805],"functionSelector":"e275cde6","implemented":true,"kind":"function","modifiers":[],"name":"changeDkgPublicKey","nameLocation":"8915:18:97","overrides":{"id":67433,"nodeType":"OverrideSpecifier","overrides":[{"id":67432,"name":"INodeRegistry","nameLocations":["8981:13:97"],"nodeType":"IdentifierPath","referencedDeclaration":69908,"src":"8981:13:97"}],"src":"8972:23:97"},"parameters":{"id":67431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67430,"mutability":"mutable","name":"dkgPublicKey","nameLocation":"8949:12:97","nodeType":"VariableDeclaration","scope":67496,"src":"8934:27:97","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":67429,"name":"bytes","nodeType":"ElementaryTypeName","src":"8934:5:97","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8933:29:97"},"returnParameters":{"id":67434,"nodeType":"ParameterList","parameters":[],"src":"8996:0:97"},"scope":68254,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":67573,"nodeType":"FunctionDefinition","src":"9510:686:97","nodes":[],"body":{"id":67572,"nodeType":"Block","src":"9584:612:97","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":67508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":67503,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67498,"src":"9598:9:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":67506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9619:1:97","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":67505,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9611:7:97","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":67504,"name":"address","nodeType":"ElementaryTypeName","src":"9611:7:97","typeDescriptions":{}}},"id":67507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9611:10:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9598:23:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":67513,"nodeType":"IfStatement","src":"9594:81:97","trueBody":{"id":67512,"nodeType":"Block","src":"9623:52:97","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":67509,"name":"InvalidZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66999,"src":"9644:18:97","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":67510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9644:20:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67511,"nodeType":"RevertStatement","src":"9637:27:97"}]}},{"assignments":[67515],"declarations":[{"constant":false,"id":67515,"mutability":"mutable","name":"ethAmount","nameLocation":"9692:9:97","nodeType":"VariableDeclaration","scope":67572,"src":"9684:17:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":67514,"name":"uint256","nodeType":"ElementaryTypeName","src":"9684:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":67520,"initialValue":{"baseExpression":{"id":67516,"name":"_withdrawableEths","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66921,"src":"9704:17:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":67519,"indexExpression":{"expression":{"id":67517,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9722:3:97","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":67518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9726:6:97","memberName":"sender","nodeType":"MemberAccess","src":"9722:10:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9704:29:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9684:49:97"},{"assignments":[67522],"declarations":[{"constant":false,"id":67522,"mutability":"mutable","name":"arpaAmount","nameLocation":"9751:10:97","nodeType":"VariableDeclaration","scope":67572,"src":"9743:18:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":67521,"name":"uint256","nodeType":"ElementaryTypeName","src":"9743:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":67527,"initialValue":{"baseExpression":{"id":67523,"name":"_arpaRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66925,"src":"9764:12:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":67526,"indexExpression":{"expression":{"id":67524,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9777:3:97","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":67525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9781:6:97","memberName":"sender","nodeType":"MemberAccess","src":"9777:10:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9764:24:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9743:45:97"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":67530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":67528,"name":"arpaAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67522,"src":"9802:10:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":67529,"name":"_BALANCE_BASE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66906,"src":"9815:13:97","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"9802:26:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":67548,"nodeType":"IfStatement","src":"9798:168:97","trueBody":{"id":67547,"nodeType":"Block","src":"9830:136:97","statements":[{"expression":{"id":67536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":67531,"name":"_arpaRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66925,"src":"9844:12:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":67534,"indexExpression":{"expression":{"id":67532,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9857:3:97","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":67533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9861:6:97","memberName":"sender","nodeType":"MemberAccess","src":"9857:10:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9844:24:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":67535,"name":"_BALANCE_BASE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66906,"src":"9871:13:97","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"9844:40:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":67537,"nodeType":"ExpressionStatement","src":"9844:40:97"},{"expression":{"arguments":[{"id":67541,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67498,"src":"9917:9:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":67544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":67542,"name":"arpaAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67522,"src":"9928:10:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":67543,"name":"_BALANCE_BASE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66906,"src":"9941:13:97","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"9928:26:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":67538,"name":"_arpa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66912,"src":"9898:5:97","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$55251","typeString":"contract IERC20"}},"id":67540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9904:12:97","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":55345,"src":"9898:18:97","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$55251_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$55251_$","typeString":"function (contract IERC20,address,uint256)"}},"id":67545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9898:57:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67546,"nodeType":"ExpressionStatement","src":"9898:57:97"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":67551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":67549,"name":"ethAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67515,"src":"9979:9:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":67550,"name":"_BALANCE_BASE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66906,"src":"9991:13:97","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"9979:25:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":67571,"nodeType":"IfStatement","src":"9975:215:97","trueBody":{"id":67570,"nodeType":"Block","src":"10006:184:97","statements":[{"expression":{"id":67557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":67552,"name":"_withdrawableEths","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66921,"src":"10020:17:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":67555,"indexExpression":{"expression":{"id":67553,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10038:3:97","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":67554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10042:6:97","memberName":"sender","nodeType":"MemberAccess","src":"10038:10:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10020:29:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":67556,"name":"_BALANCE_BASE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66906,"src":"10052:13:97","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"10020:45:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":67558,"nodeType":"ExpressionStatement","src":"10020:45:97"},{"expression":{"arguments":[{"id":67564,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67498,"src":"10142:9:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":67567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":67565,"name":"ethAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67515,"src":"10153:9:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":67566,"name":"_BALANCE_BASE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66906,"src":"10165:13:97","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"10153:25:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":67560,"name":"_config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66909,"src":"10091:7:97","typeDescriptions":{"typeIdentifier":"t_struct$_NodeRegistryConfig_$69779_storage","typeString":"struct INodeRegistry.NodeRegistryConfig storage ref"}},"id":67561,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10099:25:97","memberName":"controllerContractAddress","nodeType":"MemberAccess","referencedDeclaration":69768,"src":"10091:33:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":67559,"name":"IController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69524,"src":"10079:11:97","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IController_$69524_$","typeString":"type(contract IController)"}},"id":67562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10079:46:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IController_$69524","typeString":"contract IController"}},"id":67563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10126:15:97","memberName":"nodeWithdrawETH","nodeType":"MemberAccess","referencedDeclaration":69413,"src":"10079:62:97","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":67568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10079:100:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67569,"nodeType":"ExpressionStatement","src":"10079:100:97"}]}}]},"baseFunctions":[69810],"functionSelector":"4ecea80d","implemented":true,"kind":"function","modifiers":[],"name":"nodeWithdraw","nameLocation":"9519:12:97","overrides":{"id":67501,"nodeType":"OverrideSpecifier","overrides":[{"id":67500,"name":"INodeRegistry","nameLocations":["9569:13:97"],"nodeType":"IdentifierPath","referencedDeclaration":69908,"src":"9569:13:97"}],"src":"9560:23:97"},"parameters":{"id":67499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67498,"mutability":"mutable","name":"recipient","nameLocation":"9540:9:97","nodeType":"VariableDeclaration","scope":67573,"src":"9532:17:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67497,"name":"address","nodeType":"ElementaryTypeName","src":"9532:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9531:19:97"},"returnParameters":{"id":67502,"nodeType":"ParameterList","parameters":[],"src":"9584:0:97"},"scope":68254,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":67633,"nodeType":"FunctionDefinition","src":"10202:467:97","nodes":[],"body":{"id":67632,"nodeType":"Block","src":"10315:354:97","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":67589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":67585,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10329:3:97","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":67586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10333:6:97","memberName":"sender","nodeType":"MemberAccess","src":"10329:10:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":67587,"name":"_config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66909,"src":"10343:7:97","typeDescriptions":{"typeIdentifier":"t_struct$_NodeRegistryConfig_$69779_storage","typeString":"struct INodeRegistry.NodeRegistryConfig storage ref"}},"id":67588,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10351:25:97","memberName":"controllerContractAddress","nodeType":"MemberAccess","referencedDeclaration":69768,"src":"10343:33:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10329:47:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":67594,"nodeType":"IfStatement","src":"10325:106:97","trueBody":{"id":67593,"nodeType":"Block","src":"10378:53:97","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":67590,"name":"SenderNotController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66997,"src":"10399:19:97","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":67591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10399:21:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67592,"nodeType":"RevertStatement","src":"10392:28:97"}]}},{"body":{"id":67630,"nodeType":"Block","src":"10484:179:97","statements":[{"expression":{"id":67612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":67606,"name":"_withdrawableEths","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66921,"src":"10498:17:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":67610,"indexExpression":{"baseExpression":{"id":67607,"name":"nodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67576,"src":"10516:5:97","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":67609,"indexExpression":{"id":67608,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67596,"src":"10522:1:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10516:8:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10498:27:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":67611,"name":"ethAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67578,"src":"10529:9:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10498:40:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":67613,"nodeType":"ExpressionStatement","src":"10498:40:97"},{"expression":{"id":67620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":67614,"name":"_arpaRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66925,"src":"10552:12:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":67618,"indexExpression":{"baseExpression":{"id":67615,"name":"nodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67576,"src":"10565:5:97","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":67617,"indexExpression":{"id":67616,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67596,"src":"10571:1:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10565:8:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10552:22:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":67619,"name":"arpaAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67580,"src":"10578:10:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10552:36:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":67621,"nodeType":"ExpressionStatement","src":"10552:36:97"},{"eventCall":{"arguments":[{"baseExpression":{"id":67623,"name":"nodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67576,"src":"10620:5:97","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":67625,"indexExpression":{"id":67624,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67596,"src":"10626:1:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10620:8:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":67626,"name":"ethAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67578,"src":"10630:9:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":67627,"name":"arpaAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67580,"src":"10641:10:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":67622,"name":"NodeRewarded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66971,"src":"10607:12:97","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":67628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10607:45:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67629,"nodeType":"EmitStatement","src":"10602:50:97"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":67602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":67599,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67596,"src":"10461:1:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":67600,"name":"nodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67576,"src":"10465:5:97","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":67601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10471:6:97","memberName":"length","nodeType":"MemberAccess","src":"10465:12:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10461:16:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":67631,"initializationExpression":{"assignments":[67596],"declarations":[{"constant":false,"id":67596,"mutability":"mutable","name":"i","nameLocation":"10454:1:97","nodeType":"VariableDeclaration","scope":67631,"src":"10446:9:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":67595,"name":"uint256","nodeType":"ElementaryTypeName","src":"10446:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":67598,"initialValue":{"hexValue":"30","id":67597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10458:1:97","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10446:13:97"},"loopExpression":{"expression":{"id":67604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10479:3:97","subExpression":{"id":67603,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67596,"src":"10479:1:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":67605,"nodeType":"ExpressionStatement","src":"10479:3:97"},"nodeType":"ForStatement","src":"10441:222:97"}]},"baseFunctions":[69829],"functionSelector":"914eb34d","implemented":true,"kind":"function","modifiers":[],"name":"addReward","nameLocation":"10211:9:97","overrides":{"id":67583,"nodeType":"OverrideSpecifier","overrides":[{"id":67582,"name":"INodeRegistry","nameLocations":["10300:13:97"],"nodeType":"IdentifierPath","referencedDeclaration":69908,"src":"10300:13:97"}],"src":"10291:23:97"},"parameters":{"id":67581,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67576,"mutability":"mutable","name":"nodes","nameLocation":"10238:5:97","nodeType":"VariableDeclaration","scope":67633,"src":"10221:22:97","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":67574,"name":"address","nodeType":"ElementaryTypeName","src":"10221:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":67575,"nodeType":"ArrayTypeName","src":"10221:9:97","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":67578,"mutability":"mutable","name":"ethAmount","nameLocation":"10253:9:97","nodeType":"VariableDeclaration","scope":67633,"src":"10245:17:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":67577,"name":"uint256","nodeType":"ElementaryTypeName","src":"10245:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":67580,"mutability":"mutable","name":"arpaAmount","nameLocation":"10272:10:97","nodeType":"VariableDeclaration","scope":67633,"src":"10264:18:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":67579,"name":"uint256","nodeType":"ElementaryTypeName","src":"10264:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10220:63:97"},"returnParameters":{"id":67584,"nodeType":"ParameterList","parameters":[],"src":"10315:0:97"},"scope":68254,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":67710,"nodeType":"FunctionDefinition","src":"10730:1071:97","nodes":[],"body":{"id":67709,"nodeType":"Block","src":"10875:926:97","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":67648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":67644,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10889:3:97","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":67645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10893:6:97","memberName":"sender","nodeType":"MemberAccess","src":"10889:10:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":67646,"name":"_config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66909,"src":"10903:7:97","typeDescriptions":{"typeIdentifier":"t_struct$_NodeRegistryConfig_$69779_storage","typeString":"struct INodeRegistry.NodeRegistryConfig storage ref"}},"id":67647,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10911:25:97","memberName":"controllerContractAddress","nodeType":"MemberAccess","referencedDeclaration":69768,"src":"10903:33:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10889:47:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":67653,"nodeType":"IfStatement","src":"10885:106:97","trueBody":{"id":67652,"nodeType":"Block","src":"10938:53:97","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":67649,"name":"SenderNotController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66997,"src":"10959:19:97","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":67650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10959:21:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67651,"nodeType":"RevertStatement","src":"10952:28:97"}]}},{"assignments":[67656],"declarations":[{"constant":false,"id":67656,"mutability":"mutable","name":"node","nameLocation":"11014:4:97","nodeType":"VariableDeclaration","scope":67709,"src":"11001:17:97","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Node_$69766_storage_ptr","typeString":"struct INodeRegistry.Node"},"typeName":{"id":67655,"nodeType":"UserDefinedTypeName","pathNode":{"id":67654,"name":"Node","nameLocations":["11001:4:97"],"nodeType":"IdentifierPath","referencedDeclaration":69766,"src":"11001:4:97"},"referencedDeclaration":69766,"src":"11001:4:97","typeDescriptions":{"typeIdentifier":"t_struct$_Node_$69766_storage_ptr","typeString":"struct INodeRegistry.Node"}},"visibility":"internal"}],"id":67660,"initialValue":{"baseExpression":{"id":67657,"name":"_nodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66917,"src":"11021:6:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Node_$69766_storage_$","typeString":"mapping(address => struct INodeRegistry.Node storage ref)"}},"id":67659,"indexExpression":{"id":67658,"name":"nodeIdAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67635,"src":"11028:13:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11021:21:97","typeDescriptions":{"typeIdentifier":"t_struct$_Node_$69766_storage","typeString":"struct INodeRegistry.Node storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11001:41:97"},{"assignments":[67662],"declarations":[{"constant":false,"id":67662,"mutability":"mutable","name":"assetAccountAddress","nameLocation":"11061:19:97","nodeType":"VariableDeclaration","scope":67709,"src":"11053:27:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67661,"name":"address","nodeType":"ElementaryTypeName","src":"11053:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":67666,"initialValue":{"baseExpression":{"id":67663,"name":"_nodesToAssetAccounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66933,"src":"11083:21:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":67665,"indexExpression":{"id":67664,"name":"nodeIdAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67635,"src":"11105:13:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11083:36:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"11053:66:97"},{"condition":{"expression":{"id":67667,"name":"node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67656,"src":"11134:4:97","typeDescriptions":{"typeIdentifier":"t_struct$_Node_$69766_storage_ptr","typeString":"struct INodeRegistry.Node storage pointer"}},"id":67668,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11139:16:97","memberName":"isEigenlayerNode","nodeType":"MemberAccess","referencedDeclaration":69761,"src":"11134:21:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":67696,"nodeType":"Block","src":"11446:220:97","statements":[{"expression":{"arguments":[{"id":67692,"name":"assetAccountAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67662,"src":"11600:19:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":67693,"name":"stakingRewardPenalty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67637,"src":"11621:20:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":67688,"name":"_config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66909,"src":"11529:7:97","typeDescriptions":{"typeIdentifier":"t_struct$_NodeRegistryConfig_$69779_storage","typeString":"struct INodeRegistry.NodeRegistryConfig storage ref"}},"id":67689,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11537:22:97","memberName":"stakingContractAddress","nodeType":"MemberAccess","referencedDeclaration":69770,"src":"11529:30:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":67687,"name":"INodeStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6590,"src":"11516:12:97","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INodeStaking_$6590_$","typeString":"type(contract INodeStaking)"}},"id":67690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11516:44:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_INodeStaking_$6590","typeString":"contract INodeStaking"}},"id":67691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11561:21:97","memberName":"slashDelegationReward","nodeType":"MemberAccess","referencedDeclaration":6581,"src":"11516:66:97","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":67694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11516:139:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67695,"nodeType":"ExpressionStatement","src":"11516:139:97"}]},"id":67697,"nodeType":"IfStatement","src":"11130:536:97","trueBody":{"id":67686,"nodeType":"Block","src":"11157:283:97","statements":[{"expression":{"arguments":[{"id":67674,"name":"assetAccountAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67662,"src":"11266:19:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":67675,"name":"stakingRewardPenalty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67637,"src":"11287:20:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":67670,"name":"_config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66909,"src":"11187:7:97","typeDescriptions":{"typeIdentifier":"t_struct$_NodeRegistryConfig_$69779_storage","typeString":"struct INodeRegistry.NodeRegistryConfig storage ref"}},"id":67671,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11195:29:97","memberName":"serviceManagerContractAddress","nodeType":"MemberAccess","referencedDeclaration":69772,"src":"11187:37:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":67669,"name":"IServiceManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70053,"src":"11171:15:97","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IServiceManager_$70053_$","typeString":"type(contract IServiceManager)"}},"id":67672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11171:54:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IServiceManager_$70053","typeString":"contract IServiceManager"}},"id":67673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11226:22:97","memberName":"slashDelegationStaking","nodeType":"MemberAccess","referencedDeclaration":70045,"src":"11171:77:97","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":67676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11171:150:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67677,"nodeType":"ExpressionStatement","src":"11171:150:97"},{"expression":{"arguments":[{"id":67683,"name":"assetAccountAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67662,"src":"11409:19:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"id":67679,"name":"_config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66909,"src":"11351:7:97","typeDescriptions":{"typeIdentifier":"t_struct$_NodeRegistryConfig_$69779_storage","typeString":"struct INodeRegistry.NodeRegistryConfig storage ref"}},"id":67680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11359:29:97","memberName":"serviceManagerContractAddress","nodeType":"MemberAccess","referencedDeclaration":69772,"src":"11351:37:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":67678,"name":"IServiceManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70053,"src":"11335:15:97","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IServiceManager_$70053_$","typeString":"type(contract IServiceManager)"}},"id":67681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11335:54:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IServiceManager_$70053","typeString":"contract IServiceManager"}},"id":67682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11390:18:97","memberName":"deregisterOperator","nodeType":"MemberAccess","referencedDeclaration":70038,"src":"11335:73:97","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":67684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11335:94:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67685,"nodeType":"ExpressionStatement","src":"11335:94:97"}]}},{"expression":{"arguments":[{"id":67699,"name":"nodeIdAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67635,"src":"11688:13:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":67700,"name":"pendingBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67639,"src":"11703:12:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":67698,"name":"_freezeNode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68083,"src":"11676:11:97","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":67701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11676:40:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67702,"nodeType":"ExpressionStatement","src":"11676:40:97"},{"eventCall":{"arguments":[{"id":67704,"name":"nodeIdAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67635,"src":"11744:13:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":67705,"name":"stakingRewardPenalty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67637,"src":"11759:20:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":67706,"name":"pendingBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67639,"src":"11781:12:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":67703,"name":"NodeSlashed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66979,"src":"11732:11:97","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":67707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11732:62:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67708,"nodeType":"EmitStatement","src":"11727:67:97"}]},"baseFunctions":[69819],"functionSelector":"8ed47008","implemented":true,"kind":"function","modifiers":[],"name":"slashNode","nameLocation":"10739:9:97","overrides":{"id":67642,"nodeType":"OverrideSpecifier","overrides":[{"id":67641,"name":"INodeRegistry","nameLocations":["10856:13:97"],"nodeType":"IdentifierPath","referencedDeclaration":69908,"src":"10856:13:97"}],"src":"10847:23:97"},"parameters":{"id":67640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67635,"mutability":"mutable","name":"nodeIdAddress","nameLocation":"10757:13:97","nodeType":"VariableDeclaration","scope":67710,"src":"10749:21:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67634,"name":"address","nodeType":"ElementaryTypeName","src":"10749:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":67637,"mutability":"mutable","name":"stakingRewardPenalty","nameLocation":"10780:20:97","nodeType":"VariableDeclaration","scope":67710,"src":"10772:28:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":67636,"name":"uint256","nodeType":"ElementaryTypeName","src":"10772:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":67639,"mutability":"mutable","name":"pendingBlock","nameLocation":"10810:12:97","nodeType":"VariableDeclaration","scope":67710,"src":"10802:20:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":67638,"name":"uint256","nodeType":"ElementaryTypeName","src":"10802:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10748:75:97"},"returnParameters":{"id":67643,"nodeType":"ParameterList","parameters":[],"src":"10875:0:97"},"scope":68254,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":67725,"nodeType":"FunctionDefinition","src":"11861:161:97","nodes":[],"body":{"id":67724,"nodeType":"Block","src":"11966:56:97","nodes":[],"statements":[{"expression":{"expression":{"baseExpression":{"id":67719,"name":"_nodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66917,"src":"11983:6:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Node_$69766_storage_$","typeString":"mapping(address => struct INodeRegistry.Node storage ref)"}},"id":67721,"indexExpression":{"id":67720,"name":"nodeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67712,"src":"11990:11:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11983:19:97","typeDescriptions":{"typeIdentifier":"t_struct$_Node_$69766_storage","typeString":"struct INodeRegistry.Node storage ref"}},"id":67722,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12003:12:97","memberName":"dkgPublicKey","nodeType":"MemberAccess","referencedDeclaration":69759,"src":"11983:32:97","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"functionReturnParameters":67718,"id":67723,"nodeType":"Return","src":"11976:39:97"}]},"baseFunctions":[69836],"functionSelector":"15dac9b2","implemented":true,"kind":"function","modifiers":[],"name":"getDKGPublicKey","nameLocation":"11870:15:97","overrides":{"id":67715,"nodeType":"OverrideSpecifier","overrides":[{"id":67714,"name":"INodeRegistry","nameLocations":["11928:13:97"],"nodeType":"IdentifierPath","referencedDeclaration":69908,"src":"11928:13:97"}],"src":"11919:23:97"},"parameters":{"id":67713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67712,"mutability":"mutable","name":"nodeAddress","nameLocation":"11894:11:97","nodeType":"VariableDeclaration","scope":67725,"src":"11886:19:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67711,"name":"address","nodeType":"ElementaryTypeName","src":"11886:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11885:21:97"},"returnParameters":{"id":67718,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67717,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":67725,"src":"11952:12:97","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":67716,"name":"bytes","nodeType":"ElementaryTypeName","src":"11952:5:97","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"11951:14:97"},"scope":68254,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":67740,"nodeType":"FunctionDefinition","src":"12028:139:97","nodes":[],"body":{"id":67739,"nodeType":"Block","src":"12124:43:97","nodes":[],"statements":[{"expression":{"baseExpression":{"id":67735,"name":"_nodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66917,"src":"12141:6:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Node_$69766_storage_$","typeString":"mapping(address => struct INodeRegistry.Node storage ref)"}},"id":67737,"indexExpression":{"id":67736,"name":"nodeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67727,"src":"12148:11:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12141:19:97","typeDescriptions":{"typeIdentifier":"t_struct$_Node_$69766_storage","typeString":"struct INodeRegistry.Node storage ref"}},"functionReturnParameters":67734,"id":67738,"nodeType":"Return","src":"12134:26:97"}]},"baseFunctions":[69844],"functionSelector":"9d209048","implemented":true,"kind":"function","modifiers":[],"name":"getNode","nameLocation":"12037:7:97","overrides":{"id":67730,"nodeType":"OverrideSpecifier","overrides":[{"id":67729,"name":"INodeRegistry","nameLocations":["12087:13:97"],"nodeType":"IdentifierPath","referencedDeclaration":69908,"src":"12087:13:97"}],"src":"12078:23:97"},"parameters":{"id":67728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67727,"mutability":"mutable","name":"nodeAddress","nameLocation":"12053:11:97","nodeType":"VariableDeclaration","scope":67740,"src":"12045:19:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67726,"name":"address","nodeType":"ElementaryTypeName","src":"12045:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12044:21:97"},"returnParameters":{"id":67734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67733,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":67740,"src":"12111:11:97","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Node_$69766_memory_ptr","typeString":"struct INodeRegistry.Node"},"typeName":{"id":67732,"nodeType":"UserDefinedTypeName","pathNode":{"id":67731,"name":"Node","nameLocations":["12111:4:97"],"nodeType":"IdentifierPath","referencedDeclaration":69766,"src":"12111:4:97"},"referencedDeclaration":69766,"src":"12111:4:97","typeDescriptions":{"typeIdentifier":"t_struct$_Node_$69766_storage_ptr","typeString":"struct INodeRegistry.Node"}},"visibility":"internal"}],"src":"12110:13:97"},"scope":68254,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":67780,"nodeType":"FunctionDefinition","src":"12173:387:97","nodes":[],"body":{"id":67779,"nodeType":"Block","src":"12328:232:97","nodes":[],"statements":[{"expression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":67755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":67751,"name":"_withdrawableEths","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66921,"src":"12359:17:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":67753,"indexExpression":{"id":67752,"name":"nodeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67742,"src":"12377:11:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12359:30:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":67754,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12393:1:97","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12359:35:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":67761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":67757,"name":"_withdrawableEths","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66921,"src":"12402:17:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":67759,"indexExpression":{"id":67758,"name":"nodeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67742,"src":"12420:11:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12402:30:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":67760,"name":"_BALANCE_BASE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66906,"src":"12435:13:97","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"12402:46:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":67762,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12401:48:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":67763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"12359:90:97","trueExpression":{"hexValue":"30","id":67756,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12397:1:97","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":67768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":67764,"name":"_arpaRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66925,"src":"12463:12:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":67766,"indexExpression":{"id":67765,"name":"nodeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67742,"src":"12476:11:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12463:25:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":67767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12492:1:97","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12463:30:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":67774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":67770,"name":"_arpaRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66925,"src":"12501:12:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":67772,"indexExpression":{"id":67771,"name":"nodeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67742,"src":"12514:11:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12501:25:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":67773,"name":"_BALANCE_BASE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66906,"src":"12529:13:97","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"12501:41:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":67775,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12500:43:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":67776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"12463:80:97","trueExpression":{"hexValue":"30","id":67769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12496:1:97","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":67777,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12345:208:97","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":67750,"id":67778,"nodeType":"Return","src":"12338:215:97"}]},"baseFunctions":[69853],"functionSelector":"227d0f46","implemented":true,"kind":"function","modifiers":[],"name":"getNodeWithdrawableTokens","nameLocation":"12182:25:97","overrides":{"id":67745,"nodeType":"OverrideSpecifier","overrides":[{"id":67744,"name":"INodeRegistry","nameLocations":["12274:13:97"],"nodeType":"IdentifierPath","referencedDeclaration":69908,"src":"12274:13:97"}],"src":"12265:23:97"},"parameters":{"id":67743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67742,"mutability":"mutable","name":"nodeAddress","nameLocation":"12216:11:97","nodeType":"VariableDeclaration","scope":67780,"src":"12208:19:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67741,"name":"address","nodeType":"ElementaryTypeName","src":"12208:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12207:21:97"},"returnParameters":{"id":67750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67747,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":67780,"src":"12306:7:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":67746,"name":"uint256","nodeType":"ElementaryTypeName","src":"12306:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":67749,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":67780,"src":"12315:7:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":67748,"name":"uint256","nodeType":"ElementaryTypeName","src":"12315:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12305:18:97"},"scope":68254,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":67812,"nodeType":"FunctionDefinition","src":"12566:716:97","nodes":[],"body":{"id":67811,"nodeType":"Block","src":"12969:313:97","nodes":[],"statements":[{"expression":{"components":[{"expression":{"id":67797,"name":"_config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66909,"src":"13000:7:97","typeDescriptions":{"typeIdentifier":"t_struct$_NodeRegistryConfig_$69779_storage","typeString":"struct INodeRegistry.NodeRegistryConfig storage ref"}},"id":67798,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13008:25:97","memberName":"controllerContractAddress","nodeType":"MemberAccess","referencedDeclaration":69768,"src":"13000:33:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":67799,"name":"_config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66909,"src":"13047:7:97","typeDescriptions":{"typeIdentifier":"t_struct$_NodeRegistryConfig_$69779_storage","typeString":"struct INodeRegistry.NodeRegistryConfig storage ref"}},"id":67800,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13055:22:97","memberName":"stakingContractAddress","nodeType":"MemberAccess","referencedDeclaration":69770,"src":"13047:30:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":67801,"name":"_config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66909,"src":"13091:7:97","typeDescriptions":{"typeIdentifier":"t_struct$_NodeRegistryConfig_$69779_storage","typeString":"struct INodeRegistry.NodeRegistryConfig storage ref"}},"id":67802,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13099:29:97","memberName":"serviceManagerContractAddress","nodeType":"MemberAccess","referencedDeclaration":69772,"src":"13091:37:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":67803,"name":"_config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66909,"src":"13142:7:97","typeDescriptions":{"typeIdentifier":"t_struct$_NodeRegistryConfig_$69779_storage","typeString":"struct INodeRegistry.NodeRegistryConfig storage ref"}},"id":67804,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13150:23:97","memberName":"nativeNodeStakingAmount","nodeType":"MemberAccess","referencedDeclaration":69774,"src":"13142:31:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":67805,"name":"_config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66909,"src":"13187:7:97","typeDescriptions":{"typeIdentifier":"t_struct$_NodeRegistryConfig_$69779_storage","typeString":"struct INodeRegistry.NodeRegistryConfig storage ref"}},"id":67806,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13195:27:97","memberName":"eigenlayerNodeStakingAmount","nodeType":"MemberAccess","referencedDeclaration":69776,"src":"13187:35:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":67807,"name":"_config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66909,"src":"13236:7:97","typeDescriptions":{"typeIdentifier":"t_struct$_NodeRegistryConfig_$69779_storage","typeString":"struct INodeRegistry.NodeRegistryConfig storage ref"}},"id":67808,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13244:21:97","memberName":"pendingBlockAfterQuit","nodeType":"MemberAccess","referencedDeclaration":69778,"src":"13236:29:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":67809,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12986:289:97","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(address,address,address,uint256,uint256,uint256)"}},"functionReturnParameters":67796,"id":67810,"nodeType":"Return","src":"12979:296:97"}]},"baseFunctions":[69868],"functionSelector":"e40e744b","implemented":true,"kind":"function","modifiers":[],"name":"getNodeRegistryConfig","nameLocation":"12575:21:97","overrides":{"id":67783,"nodeType":"OverrideSpecifier","overrides":[{"id":67782,"name":"INodeRegistry","nameLocations":["12644:13:97"],"nodeType":"IdentifierPath","referencedDeclaration":69908,"src":"12644:13:97"}],"src":"12635:23:97"},"parameters":{"id":67781,"nodeType":"ParameterList","parameters":[],"src":"12596:2:97"},"returnParameters":{"id":67796,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67785,"mutability":"mutable","name":"controllerContractAddress","nameLocation":"12697:25:97","nodeType":"VariableDeclaration","scope":67812,"src":"12689:33:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67784,"name":"address","nodeType":"ElementaryTypeName","src":"12689:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":67787,"mutability":"mutable","name":"stakingContractAddress","nameLocation":"12744:22:97","nodeType":"VariableDeclaration","scope":67812,"src":"12736:30:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67786,"name":"address","nodeType":"ElementaryTypeName","src":"12736:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":67789,"mutability":"mutable","name":"serviceManagerContractAddress","nameLocation":"12788:29:97","nodeType":"VariableDeclaration","scope":67812,"src":"12780:37:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67788,"name":"address","nodeType":"ElementaryTypeName","src":"12780:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":67791,"mutability":"mutable","name":"nativeNodeStakingAmount","nameLocation":"12839:23:97","nodeType":"VariableDeclaration","scope":67812,"src":"12831:31:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":67790,"name":"uint256","nodeType":"ElementaryTypeName","src":"12831:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":67793,"mutability":"mutable","name":"eigenlayerNodeStakingAmount","nameLocation":"12884:27:97","nodeType":"VariableDeclaration","scope":67812,"src":"12876:35:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":67792,"name":"uint256","nodeType":"ElementaryTypeName","src":"12876:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":67795,"mutability":"mutable","name":"pendingBlockAfterQuit","nameLocation":"12933:21:97","nodeType":"VariableDeclaration","scope":67812,"src":"12925:29:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":67794,"name":"uint256","nodeType":"ElementaryTypeName","src":"12925:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12675:289:97"},"scope":68254,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":67826,"nodeType":"FunctionDefinition","src":"13288:230:97","nodes":[],"body":{"id":67825,"nodeType":"Block","src":"13452:66:97","nodes":[],"statements":[{"expression":{"baseExpression":{"id":67821,"name":"_assetAccountsToNodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66929,"src":"13469:21:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":67823,"indexExpression":{"id":67822,"name":"assetAccountAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67814,"src":"13491:19:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13469:42:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":67820,"id":67824,"nodeType":"Return","src":"13462:49:97"}]},"baseFunctions":[69875],"functionSelector":"d20cc152","implemented":true,"kind":"function","modifiers":[],"name":"getNodeAddressByAssetAccountAddress","nameLocation":"13297:35:97","overrides":{"id":67817,"nodeType":"OverrideSpecifier","overrides":[{"id":67816,"name":"INodeRegistry","nameLocations":["13407:13:97"],"nodeType":"IdentifierPath","referencedDeclaration":69908,"src":"13407:13:97"}],"src":"13398:23:97"},"parameters":{"id":67815,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67814,"mutability":"mutable","name":"assetAccountAddress","nameLocation":"13341:19:97","nodeType":"VariableDeclaration","scope":67826,"src":"13333:27:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67813,"name":"address","nodeType":"ElementaryTypeName","src":"13333:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13332:29:97"},"returnParameters":{"id":67820,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67819,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":67826,"src":"13439:7:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67818,"name":"address","nodeType":"ElementaryTypeName","src":"13439:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13438:9:97"},"scope":68254,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":67840,"nodeType":"FunctionDefinition","src":"13524:214:97","nodes":[],"body":{"id":67839,"nodeType":"Block","src":"13680:58:97","nodes":[],"statements":[{"expression":{"baseExpression":{"id":67835,"name":"_nodesToAssetAccounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66933,"src":"13697:21:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":67837,"indexExpression":{"id":67836,"name":"nodeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67828,"src":"13719:11:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13697:34:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":67834,"id":67838,"nodeType":"Return","src":"13690:41:97"}]},"baseFunctions":[69882],"functionSelector":"6cc7fb5d","implemented":true,"kind":"function","modifiers":[],"name":"getAssetAccountAddressByNodeAddress","nameLocation":"13533:35:97","overrides":{"id":67831,"nodeType":"OverrideSpecifier","overrides":[{"id":67830,"name":"INodeRegistry","nameLocations":["13635:13:97"],"nodeType":"IdentifierPath","referencedDeclaration":69908,"src":"13635:13:97"}],"src":"13626:23:97"},"parameters":{"id":67829,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67828,"mutability":"mutable","name":"nodeAddress","nameLocation":"13577:11:97","nodeType":"VariableDeclaration","scope":67840,"src":"13569:19:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67827,"name":"address","nodeType":"ElementaryTypeName","src":"13569:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13568:21:97"},"returnParameters":{"id":67834,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67833,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":67840,"src":"13667:7:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67832,"name":"address","nodeType":"ElementaryTypeName","src":"13667:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13666:9:97"},"scope":68254,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":67881,"nodeType":"FunctionDefinition","src":"14080:531:97","nodes":[],"body":{"id":67880,"nodeType":"Block","src":"14280:331:97","nodes":[],"statements":[{"assignments":[67855],"declarations":[{"constant":false,"id":67855,"mutability":"mutable","name":"structHash","nameLocation":"14335:10:97","nodeType":"VariableDeclaration","scope":67880,"src":"14327:18:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":67854,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14327:7:97","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":67865,"initialValue":{"arguments":[{"arguments":[{"id":67859,"name":"NATIVE_NODE_REGISTRATION_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66900,"src":"14369:33:97","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":67860,"name":"assetAccountAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67843,"src":"14404:19:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":67861,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67845,"src":"14425:4:97","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":67862,"name":"expiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67847,"src":"14431:6:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":67857,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14358:3:97","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":67858,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14362:6:97","memberName":"encode","nodeType":"MemberAccess","src":"14358:10:97","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":67863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14358:80:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":67856,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"14348:9:97","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":67864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14348:91:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"14327:112:97"},{"assignments":[67867],"declarations":[{"constant":false,"id":67867,"mutability":"mutable","name":"digestHash","nameLocation":"14494:10:97","nodeType":"VariableDeclaration","scope":67880,"src":"14486:18:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":67866,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14486:7:97","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":67877,"initialValue":{"arguments":[{"arguments":[{"hexValue":"1901","id":67871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14534:10:97","typeDescriptions":{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string hex\"1901\""},"value":"\u0019\u0001"},{"arguments":[],"expression":{"argumentTypes":[],"id":67872,"name":"domainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67909,"src":"14546:15:97","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":67873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14546:17:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":67874,"name":"structHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67855,"src":"14565:10:97","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string hex\"1901\""},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":67869,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14517:3:97","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":67870,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14521:12:97","memberName":"encodePacked","nodeType":"MemberAccess","src":"14517:16:97","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":67875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14517:59:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":67868,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"14507:9:97","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":67876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14507:70:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"14486:91:97"},{"expression":{"id":67878,"name":"digestHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67867,"src":"14594:10:97","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":67853,"id":67879,"nodeType":"Return","src":"14587:17:97"}]},"baseFunctions":[69893],"documentation":{"id":67841,"nodeType":"StructuredDocumentation","src":"13744:331:97","text":" @notice Calculates the digest hash to be signed as a native node\n @param assetAccountAddress The asset account address of the staking node\n @param salt A unique and single use value associated with the approver signature.\n @param expiry Time after which the approver's signature becomes invalid"},"functionSelector":"a2cd23e6","implemented":true,"kind":"function","modifiers":[],"name":"calculateNativeNodeRegistrationDigestHash","nameLocation":"14089:41:97","overrides":{"id":67850,"nodeType":"OverrideSpecifier","overrides":[{"id":67849,"name":"INodeRegistry","nameLocations":["14235:13:97"],"nodeType":"IdentifierPath","referencedDeclaration":69908,"src":"14235:13:97"}],"src":"14226:23:97"},"parameters":{"id":67848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67843,"mutability":"mutable","name":"assetAccountAddress","nameLocation":"14139:19:97","nodeType":"VariableDeclaration","scope":67881,"src":"14131:27:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67842,"name":"address","nodeType":"ElementaryTypeName","src":"14131:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":67845,"mutability":"mutable","name":"salt","nameLocation":"14168:4:97","nodeType":"VariableDeclaration","scope":67881,"src":"14160:12:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":67844,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14160:7:97","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":67847,"mutability":"mutable","name":"expiry","nameLocation":"14182:6:97","nodeType":"VariableDeclaration","scope":67881,"src":"14174:14:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":67846,"name":"uint256","nodeType":"ElementaryTypeName","src":"14174:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14130:59:97"},"returnParameters":{"id":67853,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67852,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":67881,"src":"14267:7:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":67851,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14267:7:97","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"14266:9:97"},"scope":68254,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":67909,"nodeType":"FunctionDefinition","src":"14724:206:97","nodes":[],"body":{"id":67908,"nodeType":"Block","src":"14805:125:97","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":67892,"name":"DOMAIN_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66894,"src":"14843:15:97","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"hexValue":"415250414e6574776f726b","id":67896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14876:13:97","typeDescriptions":{"typeIdentifier":"t_stringliteral_c43fa7e3599574b946896342cc7dd655e49b85dcfc1234920ef144a6e4f1f2e5","typeString":"literal_string \"ARPANetwork\""},"value":"ARPANetwork"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c43fa7e3599574b946896342cc7dd655e49b85dcfc1234920ef144a6e4f1f2e5","typeString":"literal_string \"ARPANetwork\""}],"id":67895,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14870:5:97","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":67894,"name":"bytes","nodeType":"ElementaryTypeName","src":"14870:5:97","typeDescriptions":{}}},"id":67897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14870:20:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":67893,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"14860:9:97","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":67898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14860:31:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":67899,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"14893:5:97","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":67900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14899:7:97","memberName":"chainid","nodeType":"MemberAccess","src":"14893:13:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":67903,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"14916:4:97","typeDescriptions":{"typeIdentifier":"t_contract$_NodeRegistry_$68254","typeString":"contract NodeRegistry"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_NodeRegistry_$68254","typeString":"contract NodeRegistry"}],"id":67902,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14908:7:97","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":67901,"name":"address","nodeType":"ElementaryTypeName","src":"14908:7:97","typeDescriptions":{}}},"id":67904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14908:13:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":67890,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14832:3:97","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":67891,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14836:6:97","memberName":"encode","nodeType":"MemberAccess","src":"14832:10:97","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":67905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14832:90:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":67889,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"14822:9:97","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":67906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14822:101:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":67888,"id":67907,"nodeType":"Return","src":"14815:108:97"}]},"baseFunctions":[69898],"documentation":{"id":67882,"nodeType":"StructuredDocumentation","src":"14617:102:97","text":" @notice Getter function for the current EIP-712 domain separator for this contract."},"functionSelector":"f698da25","implemented":true,"kind":"function","modifiers":[],"name":"domainSeparator","nameLocation":"14733:15:97","overrides":{"id":67885,"nodeType":"OverrideSpecifier","overrides":[{"id":67884,"name":"INodeRegistry","nameLocations":["14772:13:97"],"nodeType":"IdentifierPath","referencedDeclaration":69908,"src":"14772:13:97"}],"src":"14763:23:97"},"parameters":{"id":67883,"nodeType":"ParameterList","parameters":[],"src":"14748:2:97"},"returnParameters":{"id":67888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67887,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":67909,"src":"14796:7:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":67886,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14796:7:97","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"14795:9:97"},"scope":68254,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":67927,"nodeType":"FunctionDefinition","src":"14936:238:97","nodes":[],"body":{"id":67926,"nodeType":"Block","src":"15099:75:97","nodes":[],"statements":[{"expression":{"baseExpression":{"baseExpression":{"id":67920,"name":"_assetAccountSaltIsSpent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66939,"src":"15116:24:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bool_$_$","typeString":"mapping(address => mapping(bytes32 => bool))"}},"id":67922,"indexExpression":{"id":67921,"name":"assetAccountAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67911,"src":"15141:19:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15116:45:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":67924,"indexExpression":{"id":67923,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67913,"src":"15162:4:97","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15116:51:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":67919,"id":67925,"nodeType":"Return","src":"15109:58:97"}]},"baseFunctions":[69907],"functionSelector":"c71e3c78","implemented":true,"kind":"function","modifiers":[],"name":"assetAccountSaltIsSpent","nameLocation":"14945:23:97","overrides":{"id":67916,"nodeType":"OverrideSpecifier","overrides":[{"id":67915,"name":"INodeRegistry","nameLocations":["15057:13:97"],"nodeType":"IdentifierPath","referencedDeclaration":69908,"src":"15057:13:97"}],"src":"15048:23:97"},"parameters":{"id":67914,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67911,"mutability":"mutable","name":"assetAccountAddress","nameLocation":"14977:19:97","nodeType":"VariableDeclaration","scope":67927,"src":"14969:27:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67910,"name":"address","nodeType":"ElementaryTypeName","src":"14969:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":67913,"mutability":"mutable","name":"salt","nameLocation":"15006:4:97","nodeType":"VariableDeclaration","scope":67927,"src":"14998:12:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":67912,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14998:7:97","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"14968:43:97"},"returnParameters":{"id":67919,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67918,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":67927,"src":"15089:4:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":67917,"name":"bool","nodeType":"ElementaryTypeName","src":"15089:4:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15088:6:97"},"scope":68254,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":68038,"nodeType":"FunctionDefinition","src":"15238:984:97","nodes":[],"body":{"id":68037,"nodeType":"Block","src":"15322:900:97","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":67943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":67934,"name":"_nodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66917,"src":"15336:6:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Node_$69766_storage_$","typeString":"mapping(address => struct INodeRegistry.Node storage ref)"}},"id":67937,"indexExpression":{"expression":{"id":67935,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15343:3:97","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":67936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15347:6:97","memberName":"sender","nodeType":"MemberAccess","src":"15343:10:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15336:18:97","typeDescriptions":{"typeIdentifier":"t_struct$_Node_$69766_storage","typeString":"struct INodeRegistry.Node storage ref"}},"id":67938,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15355:9:97","memberName":"idAddress","nodeType":"MemberAccess","referencedDeclaration":69757,"src":"15336:28:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":67941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15376:1:97","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":67940,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15368:7:97","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":67939,"name":"address","nodeType":"ElementaryTypeName","src":"15368:7:97","typeDescriptions":{}}},"id":67942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15368:10:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15336:42:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":67948,"nodeType":"IfStatement","src":"15332:103:97","trueBody":{"id":67947,"nodeType":"Block","src":"15380:55:97","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":67944,"name":"NodeAlreadyRegistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66989,"src":"15401:21:97","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":67945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15401:23:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67946,"nodeType":"RevertStatement","src":"15394:30:97"}]}},{"assignments":[67954],"declarations":[{"constant":false,"id":67954,"mutability":"mutable","name":"publicKey","nameLocation":"15463:9:97","nodeType":"VariableDeclaration","scope":68037,"src":"15445:27:97","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_memory_ptr","typeString":"uint256[4]"},"typeName":{"baseType":{"id":67952,"name":"uint256","nodeType":"ElementaryTypeName","src":"15445:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":67953,"length":{"hexValue":"34","id":67951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15453:1:97","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"nodeType":"ArrayTypeName","src":"15445:10:97","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_storage_ptr","typeString":"uint256[4]"}},"visibility":"internal"}],"id":67959,"initialValue":{"arguments":[{"id":67957,"name":"dkgPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67929,"src":"15498:12:97","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":67955,"name":"BLS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70758,"src":"15475:3:97","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BLS_$70758_$","typeString":"type(library BLS)"}},"id":67956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15479:18:97","memberName":"fromBytesPublicKey","nodeType":"MemberAccess","referencedDeclaration":70537,"src":"15475:22:97","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_bytes_memory_ptr_$returns$_t_array$_t_uint256_$4_memory_ptr_$","typeString":"function (bytes memory) pure returns (uint256[4] memory)"}},"id":67958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15475:36:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_memory_ptr","typeString":"uint256[4] memory"}},"nodeType":"VariableDeclarationStatement","src":"15445:66:97"},{"condition":{"id":67964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15525:32:97","subExpression":{"arguments":[{"id":67962,"name":"publicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67954,"src":"15547:9:97","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_memory_ptr","typeString":"uint256[4] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$4_memory_ptr","typeString":"uint256[4] memory"}],"expression":{"id":67960,"name":"BLS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70758,"src":"15526:3:97","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BLS_$70758_$","typeString":"type(library BLS)"}},"id":67961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15530:16:97","memberName":"isValidPublicKey","nodeType":"MemberAccess","referencedDeclaration":70497,"src":"15526:20:97","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_array$_t_uint256_$4_memory_ptr_$returns$_t_bool_$","typeString":"function (uint256[4] memory) pure returns (bool)"}},"id":67963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15526:31:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":67971,"nodeType":"IfStatement","src":"15521:92:97","trueBody":{"id":67970,"nodeType":"Block","src":"15559:54:97","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":67965,"name":"BLS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70758,"src":"15580:3:97","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BLS_$70758_$","typeString":"type(library BLS)"}},"id":67967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15584:16:97","memberName":"InvalidPublicKey","nodeType":"MemberAccess","referencedDeclaration":70108,"src":"15580:20:97","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":67968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15580:22:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67969,"nodeType":"RevertStatement","src":"15573:29:97"}]}},{"assignments":[67974],"declarations":[{"constant":false,"id":67974,"mutability":"mutable","name":"n","nameLocation":"15690:1:97","nodeType":"VariableDeclaration","scope":68037,"src":"15677:14:97","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Node_$69766_storage_ptr","typeString":"struct INodeRegistry.Node"},"typeName":{"id":67973,"nodeType":"UserDefinedTypeName","pathNode":{"id":67972,"name":"Node","nameLocations":["15677:4:97"],"nodeType":"IdentifierPath","referencedDeclaration":69766,"src":"15677:4:97"},"referencedDeclaration":69766,"src":"15677:4:97","typeDescriptions":{"typeIdentifier":"t_struct$_Node_$69766_storage_ptr","typeString":"struct INodeRegistry.Node"}},"visibility":"internal"}],"id":67979,"initialValue":{"baseExpression":{"id":67975,"name":"_nodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66917,"src":"15694:6:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Node_$69766_storage_$","typeString":"mapping(address => struct INodeRegistry.Node storage ref)"}},"id":67978,"indexExpression":{"expression":{"id":67976,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15701:3:97","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":67977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15705:6:97","memberName":"sender","nodeType":"MemberAccess","src":"15701:10:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15694:18:97","typeDescriptions":{"typeIdentifier":"t_struct$_Node_$69766_storage","typeString":"struct INodeRegistry.Node storage ref"}},"nodeType":"VariableDeclarationStatement","src":"15677:35:97"},{"expression":{"id":67985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":67980,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67974,"src":"15722:1:97","typeDescriptions":{"typeIdentifier":"t_struct$_Node_$69766_storage_ptr","typeString":"struct INodeRegistry.Node storage pointer"}},"id":67982,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"15724:9:97","memberName":"idAddress","nodeType":"MemberAccess","referencedDeclaration":69757,"src":"15722:11:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":67983,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15736:3:97","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":67984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15740:6:97","memberName":"sender","nodeType":"MemberAccess","src":"15736:10:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15722:24:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":67986,"nodeType":"ExpressionStatement","src":"15722:24:97"},{"expression":{"id":67991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":67987,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67974,"src":"15756:1:97","typeDescriptions":{"typeIdentifier":"t_struct$_Node_$69766_storage_ptr","typeString":"struct INodeRegistry.Node storage pointer"}},"id":67989,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"15758:12:97","memberName":"dkgPublicKey","nodeType":"MemberAccess","referencedDeclaration":69759,"src":"15756:14:97","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":67990,"name":"dkgPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67929,"src":"15773:12:97","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"15756:29:97","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":67992,"nodeType":"ExpressionStatement","src":"15756:29:97"},{"expression":{"id":67997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":67993,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67974,"src":"15795:1:97","typeDescriptions":{"typeIdentifier":"t_struct$_Node_$69766_storage_ptr","typeString":"struct INodeRegistry.Node storage pointer"}},"id":67995,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"15797:5:97","memberName":"state","nodeType":"MemberAccess","referencedDeclaration":69763,"src":"15795:7:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":67996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"15805:4:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"15795:14:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":67998,"nodeType":"ExpressionStatement","src":"15795:14:97"},{"expression":{"id":68003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":67999,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67974,"src":"15819:1:97","typeDescriptions":{"typeIdentifier":"t_struct$_Node_$69766_storage_ptr","typeString":"struct INodeRegistry.Node storage pointer"}},"id":68001,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"15821:16:97","memberName":"isEigenlayerNode","nodeType":"MemberAccess","referencedDeclaration":69761,"src":"15819:18:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":68002,"name":"isEigenlayerNode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67931,"src":"15840:16:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15819:37:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":68004,"nodeType":"ExpressionStatement","src":"15819:37:97"},{"expression":{"id":68010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":68005,"name":"_withdrawableEths","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66921,"src":"15953:17:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":68008,"indexExpression":{"expression":{"id":68006,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15971:3:97","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":68007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15975:6:97","memberName":"sender","nodeType":"MemberAccess","src":"15971:10:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15953:29:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":68009,"name":"_BALANCE_BASE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66906,"src":"15985:13:97","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"15953:45:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":68011,"nodeType":"ExpressionStatement","src":"15953:45:97"},{"expression":{"id":68017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":68012,"name":"_arpaRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66925,"src":"16008:12:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":68015,"indexExpression":{"expression":{"id":68013,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16021:3:97","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":68014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16025:6:97","memberName":"sender","nodeType":"MemberAccess","src":"16021:10:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"16008:24:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":68016,"name":"_BALANCE_BASE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66906,"src":"16035:13:97","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"16008:40:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":68018,"nodeType":"ExpressionStatement","src":"16008:40:97"},{"assignments":[68020],"declarations":[{"constant":false,"id":68020,"mutability":"mutable","name":"groupIndex","nameLocation":"16067:10:97","nodeType":"VariableDeclaration","scope":68037,"src":"16059:18:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":68019,"name":"uint256","nodeType":"ElementaryTypeName","src":"16059:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":68029,"initialValue":{"arguments":[{"expression":{"id":68026,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16136:3:97","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":68027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16140:6:97","memberName":"sender","nodeType":"MemberAccess","src":"16136:10:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"id":68022,"name":"_config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66909,"src":"16092:7:97","typeDescriptions":{"typeIdentifier":"t_struct$_NodeRegistryConfig_$69779_storage","typeString":"struct INodeRegistry.NodeRegistryConfig storage ref"}},"id":68023,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16100:25:97","memberName":"controllerContractAddress","nodeType":"MemberAccess","referencedDeclaration":69768,"src":"16092:33:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":68021,"name":"IController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69524,"src":"16080:11:97","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IController_$69524_$","typeString":"type(contract IController)"}},"id":68024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16080:46:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IController_$69524","typeString":"contract IController"}},"id":68025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16127:8:97","memberName":"nodeJoin","nodeType":"MemberAccess","referencedDeclaration":69388,"src":"16080:55:97","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$_t_uint256_$","typeString":"function (address) external returns (uint256)"}},"id":68028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16080:67:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16059:88:97"},{"eventCall":{"arguments":[{"expression":{"id":68031,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16178:3:97","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":68032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16182:6:97","memberName":"sender","nodeType":"MemberAccess","src":"16178:10:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":68033,"name":"dkgPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67929,"src":"16190:12:97","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":68034,"name":"groupIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68020,"src":"16204:10:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":68030,"name":"NodeRegistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66947,"src":"16163:14:97","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (address,bytes memory,uint256)"}},"id":68035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16163:52:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68036,"nodeType":"EmitStatement","src":"16158:57:97"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_nodeRegister","nameLocation":"15247:13:97","parameters":{"id":67932,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67929,"mutability":"mutable","name":"dkgPublicKey","nameLocation":"15276:12:97","nodeType":"VariableDeclaration","scope":68038,"src":"15261:27:97","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":67928,"name":"bytes","nodeType":"ElementaryTypeName","src":"15261:5:97","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":67931,"mutability":"mutable","name":"isEigenlayerNode","nameLocation":"15295:16:97","nodeType":"VariableDeclaration","scope":68038,"src":"15290:21:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":67930,"name":"bool","nodeType":"ElementaryTypeName","src":"15290:4:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15260:52:97"},"returnParameters":{"id":67933,"nodeType":"ParameterList","parameters":[],"src":"15322:0:97"},"scope":68254,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":68083,"nodeType":"FunctionDefinition","src":"16228:646:97","nodes":[],"body":{"id":68082,"nodeType":"Block","src":"16303:571:97","nodes":[],"statements":[{"expression":{"id":68050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":68045,"name":"_nodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66917,"src":"16364:6:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Node_$69766_storage_$","typeString":"mapping(address => struct INodeRegistry.Node storage ref)"}},"id":68047,"indexExpression":{"id":68046,"name":"nodeIdAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68040,"src":"16371:13:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16364:21:97","typeDescriptions":{"typeIdentifier":"t_struct$_Node_$69766_storage","typeString":"struct INodeRegistry.Node storage ref"}},"id":68048,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16386:5:97","memberName":"state","nodeType":"MemberAccess","referencedDeclaration":69763,"src":"16364:27:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":68049,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"16394:5:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"16364:35:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":68051,"nodeType":"ExpressionStatement","src":"16364:35:97"},{"assignments":[68053],"declarations":[{"constant":false,"id":68053,"mutability":"mutable","name":"currentBlock","nameLocation":"16418:12:97","nodeType":"VariableDeclaration","scope":68082,"src":"16410:20:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":68052,"name":"uint256","nodeType":"ElementaryTypeName","src":"16410:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":68056,"initialValue":{"expression":{"id":68054,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"16433:5:97","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":68055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16439:6:97","memberName":"number","nodeType":"MemberAccess","src":"16433:12:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16410:35:97"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":68062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":68057,"name":"_nodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66917,"src":"16553:6:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Node_$69766_storage_$","typeString":"mapping(address => struct INodeRegistry.Node storage ref)"}},"id":68059,"indexExpression":{"id":68058,"name":"nodeIdAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68040,"src":"16560:13:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16553:21:97","typeDescriptions":{"typeIdentifier":"t_struct$_Node_$69766_storage","typeString":"struct INodeRegistry.Node storage ref"}},"id":68060,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16575:17:97","memberName":"pendingUntilBlock","nodeType":"MemberAccess","referencedDeclaration":69765,"src":"16553:39:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":68061,"name":"currentBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68053,"src":"16595:12:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16553:54:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":68080,"nodeType":"Block","src":"16774:94:97","statements":[{"expression":{"id":68078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":68071,"name":"_nodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66917,"src":"16788:6:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Node_$69766_storage_$","typeString":"mapping(address => struct INodeRegistry.Node storage ref)"}},"id":68073,"indexExpression":{"id":68072,"name":"nodeIdAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68040,"src":"16795:13:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16788:21:97","typeDescriptions":{"typeIdentifier":"t_struct$_Node_$69766_storage","typeString":"struct INodeRegistry.Node storage ref"}},"id":68074,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16810:17:97","memberName":"pendingUntilBlock","nodeType":"MemberAccess","referencedDeclaration":69765,"src":"16788:39:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":68077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":68075,"name":"currentBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68053,"src":"16830:12:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":68076,"name":"pendingBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68042,"src":"16845:12:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16830:27:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16788:69:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":68079,"nodeType":"ExpressionStatement","src":"16788:69:97"}]},"id":68081,"nodeType":"IfStatement","src":"16549:319:97","trueBody":{"id":68070,"nodeType":"Block","src":"16609:159:97","statements":[{"expression":{"id":68068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":68063,"name":"_nodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66917,"src":"16623:6:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Node_$69766_storage_$","typeString":"mapping(address => struct INodeRegistry.Node storage ref)"}},"id":68065,"indexExpression":{"id":68064,"name":"nodeIdAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68040,"src":"16630:13:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16623:21:97","typeDescriptions":{"typeIdentifier":"t_struct$_Node_$69766_storage","typeString":"struct INodeRegistry.Node storage ref"}},"id":68066,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16645:17:97","memberName":"pendingUntilBlock","nodeType":"MemberAccess","referencedDeclaration":69765,"src":"16623:39:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":68067,"name":"pendingBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68042,"src":"16666:12:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16623:55:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":68069,"nodeType":"ExpressionStatement","src":"16623:55:97"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_freezeNode","nameLocation":"16237:11:97","parameters":{"id":68043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68040,"mutability":"mutable","name":"nodeIdAddress","nameLocation":"16257:13:97","nodeType":"VariableDeclaration","scope":68083,"src":"16249:21:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":68039,"name":"address","nodeType":"ElementaryTypeName","src":"16249:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":68042,"mutability":"mutable","name":"pendingBlock","nameLocation":"16280:12:97","nodeType":"VariableDeclaration","scope":68083,"src":"16272:20:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":68041,"name":"uint256","nodeType":"ElementaryTypeName","src":"16272:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16248:45:97"},"returnParameters":{"id":68044,"nodeType":"ParameterList","parameters":[],"src":"16303:0:97"},"scope":68254,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":68153,"nodeType":"FunctionDefinition","src":"16880:833:97","nodes":[],"body":{"id":68152,"nodeType":"Block","src":"16959:754:97","nodes":[],"statements":[{"assignments":[68092],"declarations":[{"constant":false,"id":68092,"mutability":"mutable","name":"node","nameLocation":"16982:4:97","nodeType":"VariableDeclaration","scope":68152,"src":"16969:17:97","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Node_$69766_storage_ptr","typeString":"struct INodeRegistry.Node"},"typeName":{"id":68091,"nodeType":"UserDefinedTypeName","pathNode":{"id":68090,"name":"Node","nameLocations":["16969:4:97"],"nodeType":"IdentifierPath","referencedDeclaration":69766,"src":"16969:4:97"},"referencedDeclaration":69766,"src":"16969:4:97","typeDescriptions":{"typeIdentifier":"t_struct$_Node_$69766_storage_ptr","typeString":"struct INodeRegistry.Node"}},"visibility":"internal"}],"id":68096,"initialValue":{"baseExpression":{"id":68093,"name":"_nodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66917,"src":"16989:6:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Node_$69766_storage_$","typeString":"mapping(address => struct INodeRegistry.Node storage ref)"}},"id":68095,"indexExpression":{"id":68094,"name":"nodeIdAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68085,"src":"16996:13:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16989:21:97","typeDescriptions":{"typeIdentifier":"t_struct$_Node_$69766_storage","typeString":"struct INodeRegistry.Node storage ref"}},"nodeType":"VariableDeclarationStatement","src":"16969:41:97"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":68100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":68097,"name":"node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68092,"src":"17025:4:97","typeDescriptions":{"typeIdentifier":"t_struct$_Node_$69766_storage_ptr","typeString":"struct INodeRegistry.Node storage pointer"}},"id":68098,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17030:9:97","memberName":"idAddress","nodeType":"MemberAccess","referencedDeclaration":69757,"src":"17025:14:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":68099,"name":"nodeIdAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68085,"src":"17043:13:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17025:31:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":68105,"nodeType":"IfStatement","src":"17021:88:97","trueBody":{"id":68104,"nodeType":"Block","src":"17058:51:97","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":68101,"name":"NodeNotRegistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66987,"src":"17079:17:97","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":68102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17079:19:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68103,"nodeType":"RevertStatement","src":"17072:26:97"}]}},{"expression":{"arguments":[{"id":68111,"name":"nodeIdAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68085,"src":"17176:13:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"id":68107,"name":"_config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66909,"src":"17131:7:97","typeDescriptions":{"typeIdentifier":"t_struct$_NodeRegistryConfig_$69779_storage","typeString":"struct INodeRegistry.NodeRegistryConfig storage ref"}},"id":68108,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17139:25:97","memberName":"controllerContractAddress","nodeType":"MemberAccess","referencedDeclaration":69768,"src":"17131:33:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":68106,"name":"IController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69524,"src":"17119:11:97","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IController_$69524_$","typeString":"type(contract IController)"}},"id":68109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17119:46:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IController_$69524","typeString":"contract IController"}},"id":68110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17166:9:97","memberName":"nodeLeave","nodeType":"MemberAccess","referencedDeclaration":69393,"src":"17119:56:97","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":68112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17119:71:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68113,"nodeType":"ExpressionStatement","src":"17119:71:97"},{"expression":{"arguments":[{"id":68115,"name":"nodeIdAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68085,"src":"17213:13:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":68116,"name":"pendingBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68087,"src":"17228:12:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":68114,"name":"_freezeNode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68083,"src":"17201:11:97","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":68117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17201:40:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68118,"nodeType":"ExpressionStatement","src":"17201:40:97"},{"assignments":[68120],"declarations":[{"constant":false,"id":68120,"mutability":"mutable","name":"assetAccountAddress","nameLocation":"17260:19:97","nodeType":"VariableDeclaration","scope":68152,"src":"17252:27:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":68119,"name":"address","nodeType":"ElementaryTypeName","src":"17252:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":68124,"initialValue":{"baseExpression":{"id":68121,"name":"_nodesToAssetAccounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66933,"src":"17282:21:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":68123,"indexExpression":{"id":68122,"name":"nodeIdAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68085,"src":"17304:13:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17282:36:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"17252:66:97"},{"condition":{"expression":{"id":68125,"name":"node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68092,"src":"17333:4:97","typeDescriptions":{"typeIdentifier":"t_struct$_Node_$69766_storage_ptr","typeString":"struct INodeRegistry.Node storage pointer"}},"id":68126,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17338:16:97","memberName":"isEigenlayerNode","nodeType":"MemberAccess","referencedDeclaration":69761,"src":"17333:21:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":68146,"nodeType":"Block","src":"17481:187:97","statements":[{"expression":{"arguments":[{"id":68141,"name":"assetAccountAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68120,"src":"17604:19:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":68142,"name":"_config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66909,"src":"17625:7:97","typeDescriptions":{"typeIdentifier":"t_struct$_NodeRegistryConfig_$69779_storage","typeString":"struct INodeRegistry.NodeRegistryConfig storage ref"}},"id":68143,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17633:23:97","memberName":"nativeNodeStakingAmount","nodeType":"MemberAccess","referencedDeclaration":69774,"src":"17625:31:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":68137,"name":"_config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66909,"src":"17565:7:97","typeDescriptions":{"typeIdentifier":"t_struct$_NodeRegistryConfig_$69779_storage","typeString":"struct INodeRegistry.NodeRegistryConfig storage ref"}},"id":68138,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17573:22:97","memberName":"stakingContractAddress","nodeType":"MemberAccess","referencedDeclaration":69770,"src":"17565:30:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":68136,"name":"INodeStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6590,"src":"17552:12:97","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INodeStaking_$6590_$","typeString":"type(contract INodeStaking)"}},"id":68139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17552:44:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_INodeStaking_$6590","typeString":"contract INodeStaking"}},"id":68140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17597:6:97","memberName":"unlock","nodeType":"MemberAccess","referencedDeclaration":6573,"src":"17552:51:97","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":68144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17552:105:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68145,"nodeType":"ExpressionStatement","src":"17552:105:97"}]},"id":68147,"nodeType":"IfStatement","src":"17329:339:97","trueBody":{"id":68135,"nodeType":"Block","src":"17356:119:97","statements":[{"expression":{"arguments":[{"id":68132,"name":"assetAccountAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68120,"src":"17444:19:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"id":68128,"name":"_config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66909,"src":"17386:7:97","typeDescriptions":{"typeIdentifier":"t_struct$_NodeRegistryConfig_$69779_storage","typeString":"struct INodeRegistry.NodeRegistryConfig storage ref"}},"id":68129,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17394:29:97","memberName":"serviceManagerContractAddress","nodeType":"MemberAccess","referencedDeclaration":69772,"src":"17386:37:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":68127,"name":"IServiceManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70053,"src":"17370:15:97","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IServiceManager_$70053_$","typeString":"type(contract IServiceManager)"}},"id":68130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17370:54:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IServiceManager_$70053","typeString":"contract IServiceManager"}},"id":68131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17425:18:97","memberName":"deregisterOperator","nodeType":"MemberAccess","referencedDeclaration":70038,"src":"17370:73:97","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":68133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17370:94:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68134,"nodeType":"ExpressionStatement","src":"17370:94:97"}]}},{"eventCall":{"arguments":[{"id":68149,"name":"nodeIdAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68085,"src":"17692:13:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":68148,"name":"NodeQuit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66957,"src":"17683:8:97","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":68150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17683:23:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68151,"nodeType":"EmitStatement","src":"17678:28:97"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_nodeQuitHelper","nameLocation":"16889:15:97","parameters":{"id":68088,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68085,"mutability":"mutable","name":"nodeIdAddress","nameLocation":"16913:13:97","nodeType":"VariableDeclaration","scope":68153,"src":"16905:21:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":68084,"name":"address","nodeType":"ElementaryTypeName","src":"16905:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":68087,"mutability":"mutable","name":"pendingBlock","nameLocation":"16936:12:97","nodeType":"VariableDeclaration","scope":68153,"src":"16928:20:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":68086,"name":"uint256","nodeType":"ElementaryTypeName","src":"16928:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16904:45:97"},"returnParameters":{"id":68089,"nodeType":"ParameterList","parameters":[],"src":"16959:0:97"},"scope":68254,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":68209,"nodeType":"FunctionDefinition","src":"17719:866:97","nodes":[],"body":{"id":68208,"nodeType":"Block","src":"17901:684:97","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":68165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":68161,"name":"assetAccountSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68158,"src":"17915:21:97","typeDescriptions":{"typeIdentifier":"t_struct$_SignatureWithSaltAndExpiry_$70068_memory_ptr","typeString":"struct ISignatureUtils.SignatureWithSaltAndExpiry memory"}},"id":68162,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17937:6:97","memberName":"expiry","nodeType":"MemberAccess","referencedDeclaration":70067,"src":"17915:28:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":68163,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"17946:5:97","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":68164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17952:9:97","memberName":"timestamp","nodeType":"MemberAccess","src":"17946:15:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17915:46:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":68170,"nodeType":"IfStatement","src":"17911:109:97","trueBody":{"id":68169,"nodeType":"Block","src":"17963:57:97","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":68166,"name":"EIP1271SignatureExpired","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67007,"src":"17984:23:97","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":68167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17984:25:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68168,"nodeType":"RevertStatement","src":"17977:32:97"}]}},{"condition":{"baseExpression":{"baseExpression":{"id":68171,"name":"_assetAccountSaltIsSpent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66939,"src":"18033:24:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bool_$_$","typeString":"mapping(address => mapping(bytes32 => bool))"}},"id":68173,"indexExpression":{"id":68172,"name":"assetAccountAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68155,"src":"18058:19:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18033:45:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":68176,"indexExpression":{"expression":{"id":68174,"name":"assetAccountSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68158,"src":"18079:21:97","typeDescriptions":{"typeIdentifier":"t_struct$_SignatureWithSaltAndExpiry_$70068_memory_ptr","typeString":"struct ISignatureUtils.SignatureWithSaltAndExpiry memory"}},"id":68175,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18101:4:97","memberName":"salt","nodeType":"MemberAccess","referencedDeclaration":70065,"src":"18079:26:97","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18033:73:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":68181,"nodeType":"IfStatement","src":"18029:145:97","trueBody":{"id":68180,"nodeType":"Block","src":"18108:66:97","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":68177,"name":"EIP1271SignatureSaltAlreadySpent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67009,"src":"18129:32:97","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":68178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18129:34:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68179,"nodeType":"RevertStatement","src":"18122:41:97"}]}},{"assignments":[68183],"declarations":[{"constant":false,"id":68183,"mutability":"mutable","name":"nativeNodeRegistrationDigestHash","nameLocation":"18191:32:97","nodeType":"VariableDeclaration","scope":68208,"src":"18183:40:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":68182,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18183:7:97","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":68191,"initialValue":{"arguments":[{"id":68185,"name":"assetAccountAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68155,"src":"18281:19:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":68186,"name":"assetAccountSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68158,"src":"18302:21:97","typeDescriptions":{"typeIdentifier":"t_struct$_SignatureWithSaltAndExpiry_$70068_memory_ptr","typeString":"struct ISignatureUtils.SignatureWithSaltAndExpiry memory"}},"id":68187,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18324:4:97","memberName":"salt","nodeType":"MemberAccess","referencedDeclaration":70065,"src":"18302:26:97","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":68188,"name":"assetAccountSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68158,"src":"18330:21:97","typeDescriptions":{"typeIdentifier":"t_struct$_SignatureWithSaltAndExpiry_$70068_memory_ptr","typeString":"struct ISignatureUtils.SignatureWithSaltAndExpiry memory"}},"id":68189,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18352:6:97","memberName":"expiry","nodeType":"MemberAccess","referencedDeclaration":70067,"src":"18330:28:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":68184,"name":"calculateNativeNodeRegistrationDigestHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67881,"src":"18226:41:97","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes32_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (address,bytes32,uint256) view returns (bytes32)"}},"id":68190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18226:142:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"18183:185:97"},{"expression":{"arguments":[{"id":68193,"name":"assetAccountAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68155,"src":"18401:19:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":68194,"name":"nativeNodeRegistrationDigestHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68183,"src":"18422:32:97","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":68195,"name":"assetAccountSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68158,"src":"18456:21:97","typeDescriptions":{"typeIdentifier":"t_struct$_SignatureWithSaltAndExpiry_$70068_memory_ptr","typeString":"struct ISignatureUtils.SignatureWithSaltAndExpiry memory"}},"id":68196,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18478:9:97","memberName":"signature","nodeType":"MemberAccess","referencedDeclaration":70063,"src":"18456:31:97","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"}],"id":68192,"name":"_checkEIP1271Signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68253,"src":"18378:22:97","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes32,bytes memory) view"}},"id":68197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18378:110:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68198,"nodeType":"ExpressionStatement","src":"18378:110:97"},{"expression":{"id":68206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":68199,"name":"_assetAccountSaltIsSpent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66939,"src":"18498:24:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bool_$_$","typeString":"mapping(address => mapping(bytes32 => bool))"}},"id":68203,"indexExpression":{"id":68200,"name":"assetAccountAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68155,"src":"18523:19:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18498:45:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":68204,"indexExpression":{"expression":{"id":68201,"name":"assetAccountSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68158,"src":"18544:21:97","typeDescriptions":{"typeIdentifier":"t_struct$_SignatureWithSaltAndExpiry_$70068_memory_ptr","typeString":"struct ISignatureUtils.SignatureWithSaltAndExpiry memory"}},"id":68202,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18566:4:97","memberName":"salt","nodeType":"MemberAccess","referencedDeclaration":70065,"src":"18544:26:97","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18498:73:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":68205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"18574:4:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"18498:80:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":68207,"nodeType":"ExpressionStatement","src":"18498:80:97"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_checkEIP1271SignatureWithSaltAndExpiry","nameLocation":"17728:39:97","parameters":{"id":68159,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68155,"mutability":"mutable","name":"assetAccountAddress","nameLocation":"17785:19:97","nodeType":"VariableDeclaration","scope":68209,"src":"17777:27:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":68154,"name":"address","nodeType":"ElementaryTypeName","src":"17777:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":68158,"mutability":"mutable","name":"assetAccountSignature","nameLocation":"17864:21:97","nodeType":"VariableDeclaration","scope":68209,"src":"17814:71:97","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SignatureWithSaltAndExpiry_$70068_memory_ptr","typeString":"struct ISignatureUtils.SignatureWithSaltAndExpiry"},"typeName":{"id":68157,"nodeType":"UserDefinedTypeName","pathNode":{"id":68156,"name":"ISignatureUtils.SignatureWithSaltAndExpiry","nameLocations":["17814:15:97","17830:26:97"],"nodeType":"IdentifierPath","referencedDeclaration":70068,"src":"17814:42:97"},"referencedDeclaration":70068,"src":"17814:42:97","typeDescriptions":{"typeIdentifier":"t_struct$_SignatureWithSaltAndExpiry_$70068_storage_ptr","typeString":"struct ISignatureUtils.SignatureWithSaltAndExpiry"}},"visibility":"internal"}],"src":"17767:124:97"},"returnParameters":{"id":68160,"nodeType":"ParameterList","parameters":[],"src":"17901:0:97"},"scope":68254,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":68253,"nodeType":"FunctionDefinition","src":"18974:812:97","nodes":[],"body":{"id":68252,"nodeType":"Block","src":"19080:706:97","nodes":[],"statements":[{"condition":{"arguments":[{"id":68221,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68212,"src":"19433:6:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":68219,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56018,"src":"19414:7:97","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$56018_$","typeString":"type(library Address)"}},"id":68220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19422:10:97","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":55706,"src":"19414:18:97","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":68222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19414:26:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" check validity of signature:\n 1) if `signer` is an EOA, then `signature` must be a valid ECDSA signature from `signer`,\n indicating their intention for this action\n 2) if `signer` is a contract, then `signature` must will be checked according to EIP-1271","falseBody":{"id":68250,"nodeType":"Block","src":"19633:147:97","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":68244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":68240,"name":"digestHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68214,"src":"19665:10:97","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":68241,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68216,"src":"19677:9:97","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":68238,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56753,"src":"19651:5:97","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$56753_$","typeString":"type(library ECDSA)"}},"id":68239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19657:7:97","memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":56514,"src":"19651:13:97","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (bytes32,bytes memory) pure returns (address)"}},"id":68242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19651:36:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":68243,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68212,"src":"19691:6:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"19651:46:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":68249,"nodeType":"IfStatement","src":"19647:123:97","trueBody":{"id":68248,"nodeType":"Block","src":"19699:71:97","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":68245,"name":"EIP1271SignatureNotFromSigner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67005,"src":"19724:29:97","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":68246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19724:31:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68247,"nodeType":"RevertStatement","src":"19717:38:97"}]}}]},"id":68251,"nodeType":"IfStatement","src":"19410:370:97","trueBody":{"id":68237,"nodeType":"Block","src":"19442:185:97","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":68231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":68227,"name":"digestHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68214,"src":"19494:10:97","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":68228,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68216,"src":"19506:9:97","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":{"arguments":[{"id":68224,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68212,"src":"19469:6:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":68223,"name":"IERC1271","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54041,"src":"19460:8:97","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1271_$54041_$","typeString":"type(contract IERC1271)"}},"id":68225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19460:16:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC1271_$54041","typeString":"contract IERC1271"}},"id":68226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19477:16:97","memberName":"isValidSignature","nodeType":"MemberAccess","referencedDeclaration":54040,"src":"19460:33:97","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (bytes32,bytes memory) view external returns (bytes4)"}},"id":68229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19460:56:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":68230,"name":"_EIP1271_MAGICVALUE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66903,"src":"19520:19:97","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"19460:79:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":68236,"nodeType":"IfStatement","src":"19456:161:97","trueBody":{"id":68235,"nodeType":"Block","src":"19541:76:97","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":68232,"name":"EIP1271SignatureVerificationFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67003,"src":"19566:34:97","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":68233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19566:36:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68234,"nodeType":"RevertStatement","src":"19559:43:97"}]}}]}}]},"documentation":{"id":68210,"nodeType":"StructuredDocumentation","src":"18591:378:97","text":" @notice Checks @param signature is a valid signature of @param digestHash from @param signer.\n If the `signer` contains no code -- i.e. it is not (yet, at least) a contract address, then checks using standard ECDSA logic\n Otherwise, passes on the signature to the signer to verify the signature and checks that it returns the `EIP1271_MAGICVALUE`."},"implemented":true,"kind":"function","modifiers":[],"name":"_checkEIP1271Signature","nameLocation":"18983:22:97","parameters":{"id":68217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68212,"mutability":"mutable","name":"signer","nameLocation":"19014:6:97","nodeType":"VariableDeclaration","scope":68253,"src":"19006:14:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":68211,"name":"address","nodeType":"ElementaryTypeName","src":"19006:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":68214,"mutability":"mutable","name":"digestHash","nameLocation":"19030:10:97","nodeType":"VariableDeclaration","scope":68253,"src":"19022:18:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":68213,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19022:7:97","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":68216,"mutability":"mutable","name":"signature","nameLocation":"19055:9:97","nodeType":"VariableDeclaration","scope":68253,"src":"19042:22:97","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":68215,"name":"bytes","nodeType":"ElementaryTypeName","src":"19042:5:97","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"19005:60:97"},"returnParameters":{"id":68218,"nodeType":"ParameterList","parameters":[],"src":"19080:0:97"},"scope":68254,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":66877,"name":"UUPSUpgradeable","nameLocations":["1036:15:97"],"nodeType":"IdentifierPath","referencedDeclaration":53423,"src":"1036:15:97"},"id":66878,"nodeType":"InheritanceSpecifier","src":"1036:15:97"},{"baseName":{"id":66879,"name":"INodeRegistry","nameLocations":["1053:13:97"],"nodeType":"IdentifierPath","referencedDeclaration":69908,"src":"1053:13:97"},"id":66880,"nodeType":"InheritanceSpecifier","src":"1053:13:97"},{"baseName":{"id":66881,"name":"INodeRegistryOwner","nameLocations":["1068:18:97"],"nodeType":"IdentifierPath","referencedDeclaration":69950,"src":"1068:18:97"},"id":66882,"nodeType":"InheritanceSpecifier","src":"1068:18:97"},{"baseName":{"id":66883,"name":"OwnableUpgradeable","nameLocations":["1088:18:97"],"nodeType":"IdentifierPath","referencedDeclaration":52751,"src":"1088:18:97"},"id":66884,"nodeType":"InheritanceSpecifier","src":"1088:18:97"}],"canonicalName":"NodeRegistry","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[68254,52751,53804,69950,69908,53423,53107,52772,52782,53286],"name":"NodeRegistry","nameLocation":"1020:12:97","scope":68255,"usedErrors":[66987,66989,66991,66995,66997,66999,67001,67003,67005,67007,67009,67011,70108]}],"license":"MIT"},"id":97}